importdata是Matlab中功能强大的函数,可以将txt等文件数据读入到数组变量中,但在开源的Octave中却不能直接用。Octave支持标准的类C文件I/O,可以采用按行读取,加载到cell里的方法。例如有个按行写入string的txt文件test.txt,则可以采用如下代码:
filename = 'test.txt';
file_id = fopen(filename,'r');
i = 1;
flist = cell(1);
while 1
line = fgetl(file_id);
if line == -1
break;
end
flist{i} = line;
i = i + 1;
end
fclose(file_id);
首先采用fopen打开文件句柄,创建cell array flist,采用fgetl函数读取每行,采用索引将每行数据添加到flist变量中,最后关闭文件。