仅加载特定行

时间:2017-03-27 17:11:55

标签: io octave

我有一个包含超过一百万行的数据文件,包含16个整数(这并不重要),我需要处理Octave中的行。显然,加载整个文件是不可能的。如何只加载特定的行?

我想到了两种可能性:

  • 我在Simple I / O的文档中遗漏了一些内容
  • 我应该将文件转换为CSV并使用一些csvread功能

1 个答案:

答案 0 :(得分:3)

如果要逐行遍历文件,可以打开该文件,然后使用fscanf解析每一行。

fid = fopen(filename);

while true
    % Read the next 16 integers
    data = fscanf(fid, '%d', 16);

    % Go until we can't read anymore
    if isempty(data)
        break
    end
end

如果您希望每一行都作为字符串,则可以使用fgetl来获取每一行

fid = fopen(filename);

% Get the first line
line = fgetl(fid);

while line
    % Do thing

    % Get the next line
    line = fgetl(fid);
end