Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何删除txt文件中的每N行?_Matlab - Fatal编程技术网

Matlab 如何删除txt文件中的每N行?

Matlab 如何删除txt文件中的每N行?,matlab,Matlab,我有一个txt文件(ANSYS第一原理节点应力列表),里面几乎有16k行。我想删除特定的行,例如第1行、第2行、第3行、第4行、第5行、第39行、第40行、第41行、第42行、第43行等。我不需要搜索任何内容,我知道哪些行需要删除。有人帮忙吗?如果您使用的是linux,您可以使用该命令: sed -i '2d' data.txt 这被标记为Matlab,但是在Matlab中这样做将是痛苦的,因为它通常不提供在文件中间删除字节的方便方法,因此您必须编写一些代码来将文本写入新文件,跳过适当的行。<

我有一个txt文件(ANSYS第一原理节点应力列表),里面几乎有16k行。我想删除特定的行,例如第1行、第2行、第3行、第4行、第5行、第39行、第40行、第41行、第42行、第43行等。我不需要搜索任何内容,我知道哪些行需要删除。有人帮忙吗?

如果您使用的是linux,您可以使用该命令:

sed -i '2d' data.txt

这被标记为Matlab,但是在Matlab中这样做将是痛苦的,因为它通常不提供在文件中间删除字节的方便方法,因此您必须编写一些代码来将文本写入新文件,跳过适当的行。< /P> 如果您使用的是UNIX系统,那么使用sed会容易得多。有人解释怎么做。关键命令是:

# To delete line 10 and 12:
sed -i -e '10d;12d' your-file.txt

也许不是最有效的方法,但这是有效的:

data_file = 'data.txt';
lines_to_skip = [1:5, 39:43];

fid = fopen(data_file);
ii = 0;
while ~feof(fid)
    ii = ii + 1;
    file_content{ii} = fgetl(fid);
end

lines = true(1,ii);
lines(lines_to_skip) = false;
fid = fopen(data_file,'w');
fprintf(fid,'%s\r\n',file_content{lines});
fclose(fid); 

请分享你的代码你看到了吗@Mohammaddrezakhatami,那个代码对我的问题不起作用