我有近千个带有奇怪名字的.mat文件:
我的第一个问题是运行一个foor循环来打开这样命名的文件:
exp_trial1_0001
exp_trial1_0002
...
exp_trial1_1000
它是4位数的事实让我很难。这不起作用:
load(['exp_trial_', num2str(%04i), '.mat'])
有1000个.mat文件对应1000次试验。在这些.mat文件的每一个中都有一个矩阵A.矩阵A有500行。我想为每个.mat文件(“试用”)取出所有第1行(和2s,3s,... 500)并将它们放在一个单独的矩阵中。
我无法同时加载所有这些.mat文件,然后执行此操作,因为内存不足。我想知道最有效的方法是什么。
非常感谢!
答案 0 :(得分:0)
我建议采取以下措施:
N = 100; %// Number of columns of the matrix "A" in the files. Set as needed.
F = 1000; %// Number of files
rows = [1 2 3]; %// rows you want to extract from the files
result = NaN(numel(rows),N,F); %// preallocate
for ii = 1:F %// iterate over all files
load(['exp_trial1_' sprintf('%04d',ii) '.mat'], 'A'); %// load matrix A only
result(:,:,ii) = A(rows,:); %// store desired rows from each file
end