Сначала вам нужно создать список файлов. У меня есть своя собственная функция для этого, но есть, например, GETFILELIST или отличный интерактивный UIPICKFILES для создания списка файлов.
Получив список файлов (я предполагаю, что это массив ячеек с именами файлов), вы можете сделать следующее:
nFiles = length(fileList);
Master_matrix = zeros(7,N);
for iFile = 1:nFiles
%# if all files contain a variable of the same name,
%# you can simplify the loading by not assigning an output
%# in the load command, and call the file by
%# its variable name (i.e. replace 'loadedData')
tmp = load(fileList{iFile});
fn = fieldnames(tmp);
loadedData = tmp.(fn{1});
%# find size
w = size(loadedData,2);
if w>=N
Master_matrix = Master_matrix + loadedData(:,1:N);
else
%# only adding to the first few columns is the same as zero-padding
Master_matrix(:,1:w) = Master_matrix(:,1:w) = loadedData;
end
end
Примечание. Если вы на самом деле не хотите добавлять данные, а просто сохранить их в мастер-массиве, вы можете сделать Master_matrix
массивом 7 на N по nFiles, где n-й Плоскость Master_matrix
является содержимым n-го файла. В этом случае вы бы инициализировали Master_matrix
как
Master_matrix = zeros(7,N,nFiles);
и вы бы написали условие if как
if w>=N
Master_matrix(:,:,iFile) = Master_matrix(:,:,iFile) + loadedData(:,1:N);
else
%# only adding to the first few columns is the same as zero-padding
Master_matrix(:,1:w,iFile) = Master_matrix(:,1:w,iFile) = loadedData;
end
Также обратите внимание, что вы можете инициализировать Master_matrix
как NaN
вместо zeros
, чтобы нули не влияли на последующую статистику (если это то, что вы хотите делать с данными).