MATLAB:如何从.txt文件加载文件名列表

时间:2018-05-09 19:35:03

标签: string matlab import

filelist.txt 包含文件列表:

/path/file1.json
/path/file2.json
/path/fileN.json

是否有(简单)MATLAB命令接受filelist.txt并将每个文件作为字符串读取并将每个字符串存储到单元格数组中?

3 个答案:

答案 0 :(得分:1)

这个问题有点特定于标准功能。但是,通过两个功能的组合很容易实现:

首先,你必须打开文件:

fid = fopen('filelist.txt');

接下来,您可以逐行阅读:

line_ex = fgetl(fid)

此功能包括一个计数器。如果下次调用该函数,它将读取第二行,依此类推。您可以找到更多信息here

整个代码可能如下所示:

%   Open file
fid = fopen('testabc');

numberOfLines = 3;

%   Preallocate cell array
line = cell(numberOfLines, 1);

%   Read one line after the other and save it in a cell array
for i = 1:numberOfLines
    line{i} = fgetl(fid);
end

%   Close file
fclose(fid);

答案 1 :(得分:1)

为此用while循环替换for循环:

i=0;
while ~feof(fid)
i=i+1
line{1} = fgetl(fid)
end

答案 2 :(得分:1)

只需使用readtable,让它完整阅读每一行。

>> tbl = readtable('filelist.txt','ReadVariableNames',false,'Delimiter','\n');
>> tbl.Properties.VariableNames = {'filenames'}
tbl =
  3×1 table
        filenames     
    __________________
    '/path/file1.json'
    '/path/file2.json'
    '/path/fileN.json'

然后访问循环中的元素

for idx = 1:height(tbl)
   this_filename = tbl.filenames{idx};
end