How to read specific fields from multiple structure arrays in MATLAB?
1 view (last 30 days)
Show older comments
Hello,
I have a very large dataset arranged into multiple structure arrays in MATLAB. The structures look something like this:
Flight1=
.testpoint = 1
.Mach = 0.8
.Speed = 300
.Cieling = 35000
.Data = [A] % A is an MxN matrix
Similarly there are multiple test points for multiple flights. Is there a way to retrieve the Data of only specified test points? For example I want to plot and compare the Data of ALL the test points whose .Mach = 0.8 or where .testpoint = 2?
I hope I have made it clear enough.
0 Comments
Accepted Answer
Azzi Abdelmalek
on 20 Feb 2013
Edited: Azzi Abdelmalek
on 20 Feb 2013
idx=cellfun(@(x,y) x==2 |y==0.8,{Flight1.testpoint},{Flight1.match})
%idx is the index that fit your conditions
6 Comments
Azzi Abdelmalek
on 20 Feb 2013
Edited: Azzi Abdelmalek
on 20 Feb 2013
for k=1:10
s=sprintf('Flight%d',k)
Flight1=load(s)
idx=cellfun(@(x,y) x==2 |y==0.8,{Flight1.testpoint},{Flight1.match})
out=Flight1(idx)
v{k}={out.testpoint}
end
More Answers (1)
Thorsten
on 20 Feb 2013
A = Flight([Flight.Mach] == 0.8);
B = Flight([Flight.testpoint] == 2);
0 Comments
See Also
Categories
Find more on Structures in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!