У меня есть 429 числовых матриц одинакового размера (107 строк по 36 столбцов), которые хранятся в последовательно именуемых файлах .mat
(например, subj_00000.mat ... subj_00428.mat
).Вот что мне нужно сделать:
- Импорт в рабочую область MATLAB.
- После импорта усредните все из них, чтобы сгенерировать другую матрицу, которая также будет иметь размер 107x36.
- Наконец, линейно коррелируйте каждый столбец средней матрицы с каждым столбцом каждого изоригинальные матрицы 429, чтобы сгенерировать новую матрицу из 429 строк и 36 столбцов.
Итак, я дошел до стадии построения массива 107 x 36 x 429, который будет заполнен моим набором матриц.
S = dir(fullfile(D,'subj*.mat')); % D is the path where the .mat files are saved
N = numel(S);
C = cell(1,N); % preallocate cell array
for k = 1:N
S = load(fullfile(D,S(k).name));
C(k) = struct2cell(S);
end
A = cat(3,C{:}); % join all of the original matrices into a 107x36x429 array
M = mean(A,3)
но я получаю следующее сообщение об ошибке:
Reference to non-existent field 'name'.
Error in myscript (line 6)
S = load(fullfile(D,S(k).name));