我尝试从导入到Matlab的.txt文件中跳过第5行到文件末尾。
fidM = fopen('abc.txt', 'r');
for i = 5:150
fgetl(fidM);
end
buffer = fread(fidM, Inf) ;
fclose(fidM);
fidM = fopen('xyz.txt', 'w');
fwrite(fidM, buffer) ;
fclose(fidM) ;
上面的代码不能以某种方式完成工作。有什么想法吗?
答案 0 :(得分:2)
您的代码当前读取文件的前146行,丢弃它们,然后读取剩余部分并将 写入文件。相反,如果您只想将abc.txt
的前5行写入xyz.txt
,请执行以下操作:
fid = fopen('abc.txt', 'r');
fout = fopen('xyz.txt', 'w');
for k = 1:5
fprintf(fout, '%s\r\n', fgetl(fid));
end
fclose(fid);
fclose(fout);
或者您可以删除循环并执行以下操作:
fid = fopen('abc.txt', 'r');
% Read in the first 5 lines
contents = textscan(fid, '%s', 5);
fclose(fid);
% Write these to a new file
fout = fopen('xyz.txt', 'w');
fprintf(fout, '%s\r\n', contents{1}{:});
fclose(fout);