Save for loop outputs into structure

16 vues (au cours des 30 derniers jours)
carola forlini
carola forlini le 31 Mai 2022
Commenté : carola forlini le 31 Mai 2022
Hi,
I am trying to clean some field data using some function. The data are matrix [n x 16]. I would like to generate a structure into a for loop with substructures per each iteration (in this case, per each column).
Here it's the code I wrote so far:
allBIN = [];
nBin = 16; % Number bins
for n = 1:nBin
allVel = [uAll(:,n) vAll(:,n) w1All(:,n) w2All(:,n)]; %get velocity data from each column from uAll, vAll, w1All and w2All
corr = [corrB1(:,n) corrB2(:,n) corrB3(:,n) corrB4(:,n)]; %get correlation data from each column from corrB1, corrB2, corrB3 and corrB4
% Input necessary for CMA function
start=1;
stop=length(uAll(:,1));
thresh=70;
[x,y,z,x_nan,y_nan,z_nan,cleanCorr,cleanVel]=CMA(corr,allVel,start,stop, timeAll',thresh);
% Save cleanCorr and cleanVel from each iteration into structure
allBIN.('n').corr = cleanCorr;
allBIN.('n').vel = cleanVel;
end
I would like to have an output like:
for n = 1:
allBIN.1.corr
allBIN.1.vel
for n = 2:
allBIN.2.corr
allBIN.2.vel
and so on...
Any suggestion?
Thank you!
  1 commentaire
Stephen23
Stephen23 le 31 Mai 2022
"I would like to have an output like ... Any suggestion?"
Using a structure array would be simpler and more efficient:
allBIN(1).corr
allBIN(1).vel
..
allBIN(2).corr
allBIN(2).vel
..

Connectez-vous pour commenter.

Réponse acceptée

Rik
Rik le 31 Mai 2022
You should probably use a struct array:
allBIN(n).corr= ___
%etc
But if you insist: field names must be valid variable names, so you need to prepend something:
field=sprintf('it_%d',n);
allBIN.(field).corr= ___
%etc
  1 commentaire
carola forlini
carola forlini le 31 Mai 2022
Hi Rik,
Thank you for your help.
My mistake was to not specify a valid variable name.

Connectez-vous pour commenter.

Plus de réponses (1)

Davide Masiello
Davide Masiello le 31 Mai 2022
Does
allBIN(n).corr
work?
  4 commentaires
Davide Masiello
Davide Masiello le 31 Mai 2022
I concur with Stephen.
carola forlini
carola forlini le 31 Mai 2022
Thank you everyone for all the explanations.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by