filelist.txt 包含文件列表:
/path/file1.json
/path/file2.json
/path/fileN.json
是否有(简单)MATLAB命令接受filelist.txt并将每个文件作为字符串读取并将每个字符串存储到单元格数组中?
答案 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