Реверс eval в MATLAB - PullRequest
       22

Реверс eval в MATLAB

1 голос
/ 29 июля 2011

Я надеюсь, что если у кого-то есть немного опыта в MATLAB, чем я могу здесь помочь, я немного безнадежен с этой вещью в MATLAB.

У меня есть список переменных в MATLAB с именами S50, S60, S70 и т. Д. С размерностью 1x142x192. Я просто хотел объединить их в одну переменную для проведения статистического анализа (в измерение Nx142x192).

Я обнаружил, что люди используют функцию eval для создания строки переменной, могу ли я сделать обратное?

for i = 1:5
    eval([ 'M' num2str(i) ' = M;' ]);
end

1 Ответ

1 голос
/ 29 июля 2011

Хотя мне не очень нравится использовать EVAL, вот одно из возможных решений:

%# evaluates the expression: cat(1,S50,S60,S70)
S = eval(['cat(1' sprintf(',S%d', (50:10:70)') ')']);
...