Access structure arrays after load from a for loop

1 次查看(过去 30 天)
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!

采纳的回答

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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by