Access structure arrays after load from a for loop

1 vue (au cours des 30 derniers jours)
Jon
Jon le 3 Oct 2017
Commenté : Jon le 3 Oct 2017
I'm trying to analyze multiple sequential files (e.g. fv1, fv2, fv3, etc) using a for loop. However, when loading, it adds the variable as another field name (i.e. d.fv1.field.field- see below).
for i=1:5;
d=load(['fv' num2str(i) '.mat']);
data(i,:)=d.Y(4).Data;
If I try to access the data I want, I can't because: 1. Its added a new field name 2. The original file name is still included but I can't access it with structure accessing
for i=1:5;
d=load(['fv' num2str(i) '.mat']);
data(i,:)=d.strcat('fv' num2str(i)).Y(4).Data;
I'm relatively new to Matlab, and while similar questions may have answered parts of this I haven't found anything that addresses this directly. Is this something I'll have to tackle with dynamic variables (which I have almost no grasp on). Thanks so much for any help!

Réponse acceptée

Walter Roberson
Walter Roberson le 3 Oct 2017
for i = 1:5
fn = sprintf('fv%d', i);
d = load( [fn '.mat']);
data(i,:)=d.(fn).Y(4).Data;
end

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by