Другие более продвинутые пользователи могут присоединиться к лучшему / более эффективному способу сделать это, но я думаю, что я понимаю, о чем вы спрашиваете, и возможный способ сделать это (мне любопытно, что касается других предложений!)
Создание новых имен переменных в цикле не просто в Matlab, но, если вы сделаете их частями структур, вы можете обойти это.
, если A
является вашей m*n*k
матрицей,
s = struct;
for i = 1:k
s.(['k' num2str(i)]) = A(:,:,k); % builds a field in structure s named k#
end
Это должно сделать структуру, s
, которая имеет s.k1
, s.k2
, s.k3
,и т. д., каждая из которых представляет собой матрицу m*n
.
Тогда, если вам понадобится выполнить другие действия позже для всех частей s, вы можете вызвать их одинаково, используя s.(['k' num2str(i)])