matlab:将文本文件的最后一行移到顶部

时间:2015-05-14 18:57:22

标签: matlab text-files line

我不熟悉Matlab。 我正在处理由字母数字和符号组成的数据。 我想将底线移到文件的最顶部。 我已经研究过使用fseek等的其他方法,但是那些让我困惑并使用超特定文件特征的方法。 有没有一般的方法来做到这一点?

感谢您的时间。

3 个答案:

答案 0 :(得分:0)

我认为没有内置功能。但我认为通过以下步骤可以轻松实现:

  1. 阅读整个文件freadf
  2. 将矩阵中的最后一行移动到第一行。
  3. 并回写文件fwrite

答案 1 :(得分:0)

对于字母数字文件,最简单易懂的方法是完全读取文件,将行保存在字符串单元格数组中,并按照适合您的顺序编写。这些行应该在这里解决你的问题。

readfin = fopen('myfile.txt','r');
writefin = fopen('modifiedfile.txt', 'w');
lineno = 1;

% Get all lines one by one and save them
while(~feof(readfin))
    newline{lineno} = fgetl(readfin); 
    lineno = lineno + 1;
end

% Write first line
fprintf(writefin, '%s', newline{end});

% Write the rest of the lines one by one
for lineno=1:(length(newline)-1)
    fprintf(writefin,'\n');
    fprintf(writefin, '%s', newline{lineno});
end

fclose(readfin);
fclose(writefin);

答案 2 :(得分:0)

这个答案怎么样: MATLAB: How do you insert a line of text at the beginning of a file?

fid = fopen(filepath);

while 1
    line = fgetl(fid);

    if ~ischar(line)
        break;
    end

    pline = line;

end
fclose(fid);

dlmwrite(filepath,[pline 13 10 fileread(filepath)],'delimiter','');