У меня есть цикл, который вычисляет среднее значение (m
), стандартное отклонение (std
) и стандартную ошибку (sem
) для нескольких условий. Поскольку каждое условие имеет свои собственные m
, std
и sem
, и я хотел бы назвать свой вывод соответствующим образом (они должны быть в двойном формате). Например: cond1_m
, cond1_std
, cond1_sem
, cond2_m
, cond2_std
, cond2_sem
и т.д.Динамическое изменение имен переменных
Это то, что я пробовал:
cond={'cond1','cond2','cond3','cond4','cond5',...}
for a=1:length(cond)
[strcat(cond{a},'_m'),strcat(cond{a},'_std'),strcat(cond{a},'_sem')]=compute_stats(M(:,a));
end
Примечание: compute_stats
это функция, которая выводит m
, std
и sem
. M
- это матрица, содержащая мои данные. Проблема в том, что strcat
, похоже, не работает как способ изменения имени моего вывода. Для итерации 1, например, вместо того, чтобы давать мне cond1_m
, мой вывод представляет собой матрицу с именем strcat.
Может ли кто-нибудь помочь?
Пожалуйста [не используйте 'eval' в MATLAB] (http://stackoverflow.com/questions/32467029/how-to -Положите-эти-образы-вместе). Я предлагаю использовать структуру с динамическими именами полей с синтаксисом 'condstruc. ([Num2str (a), '_m'])' и т. Д. –