How to assign a different name of a matrix for each iteration?

8 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Fabio Freschi
Fabio Freschi am 9 Sep. 2019
% 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.

Weitere Antworten (1)

Johannes Fischer
Johannes Fischer am 9 Sep. 2019
You could use assignin for that purpose:
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

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Produkte


Version

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by