How to assign a different name of a matrix for each iteration?
6 ビュー (過去 30 日間)
古いコメントを表示
Hi everyone,
I am trying to, for each iteration (that goes from 1 to 270), assign a different name for the result matrix of the function modalfit from Matlab Signal Processing Toolbox.
The matrix is a 1x10 for each iteration.
For example, I want for j=1 that the matrix is called [fn1] and saved in the workspace...
This is the code:
for j = 1 : size(varargout,2)
[fn]= modalfit(varargout{1,j}, f, fs, 10, 'FreqRange', [0 3000], 'FitMethod' , 'PP');
end
I would be very happy to be helped.
Thanks, Ana
0 件のコメント
採用された回答
Fabio Freschi
2019 年 9 月 9 日
Don't use this sintax (for details, see https://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval). You can use a cell array
% preallocation
fn = cell(size(varargout,2),1);
for j = 1 : size(varargout,2)
fn{j} = modalfit(varargout{1,j}, f, fs, 10, 'FreqRange', [0 3000], 'FitMethod' , 'PP');
end
and you can get the desired matrix as fn{1}, fn{2}, etc.
その他の回答 (1 件)
Johannes Fischer
2019 年 9 月 9 日
for j = 1 : size(varargout,2)
fn = modalfit(varargout{1,j}, f, fs, 10, 'FreqRange', [0 3000], 'FitMethod' , 'PP');
assignin('base', ['fn' num2str(i)], fn)
end
but what speaks against storing it all in one 270x10 matrix?
fn = zeros(size(varargout,2), 10)
for j = 1 : size(varargout,2)
fn(j, :) = modalfit(varargout{1,j}, f, fs, 10, 'FreqRange', [0 3000], 'FitMethod' , 'PP');
end
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!