我需要将多个文件的数据连接到一个矩阵中。到目前为止,我一直在测试加载数据的方式类似于以下内容:
fid = fopen('data01.txt', 'r');
raw = textscan(fid, '%d/%d/%d %d:%d:%f %f %f %f %d', 'delimiter', ',');
m = cellfun(@double, raw, 'UniformOutput', false);
value_of_interest = m{:,10}
...但是我在磁盘上的数据集是许多文件,并且都存在于一个目录中。我更愿意参考这个目录的特定路径,而不是将我的脚本放在那里。如何修改我的脚本,以便它加载所述文件夹中所有文件的所有数据?
到目前为止,我有这个:
dirname = uigetdir;
files = dir(dirname);
fileIndex = find(~[files.isdir]);
for i = 1:length(fileIndex)
fileName = files(fileIndex(i)).name;
fid = fopen(fileName, 'r');
raw = textscan(fid, '%d/%d/%d %d:%d:%f %f %f %f %d', 'delimiter', ',');
time = [m{:,4}, m{:,5}, m{:,6}]; %needs to contain a float
converted_time = ((m{:,4} * 3600.0) + (m{:,5} * 60.0) + m{:,6}); %hh:mm:ss -> seconds
values = power(m{:,10}, 2);
values(values <= thresh) = 0;
% need to concat into the var 'values' here... also need to accumulate the time variable
end
plot(converted_time, values);
...但我需要把两者放在一起。
编辑:我应该提到我可能会用完内存,稍后将在下面对我选择的答案的评论中对此进行解释。