Eliminating unnecessary portions of arrays from structure.
2 views (last 30 days)
Show older comments
Hello. I have 1x1574 structure array called "data" with 27 fields. I would like to perform on one of the fields, "IAS". I would like to only extract (take out) the near constant segment, and eliminate the rest. For example.
plot(data(1).Altitude, data(1).IAS)
I get the following graph.
I only want to take out the near constant segment, which is around 300 knots. (Range around plus and minus 10 knots) (From 2.4 * 10^4 to 3.2 * 10^4). When I extract this, I also want this to happen to the other fields.(In other words, I am only interested in the near constant segments of the IAS, and the others are not important).
Now I can do this one by one, but the problem is I have 1574 arrays which is too many. Could anyone help me? Thanks!
1 Comment
James Tursa
on 19 Jun 2015
Edited: James Tursa
on 19 Jun 2015
To clarify, are you trying to do something like this pseudo-code?
for k=1:1574
range = find indexes for the beginning near-constant portion of data(k).IAS
f = fieldnames(data(k));
n = numel(f);
for m=1:n
Remove range from data(k).(f{m});
end
end
Accepted Answer
Fabio Freschi
on 19 Jun 2015
Edited: Fabio Freschi
on 19 Jun 2015
If I understand correctly you want something like this
idx = find(data(1).IAS >= 290 & data(1).IAS <= 310);
plot(data(1).Altitude(idx), data(1).IAS(idx));
Then you can use 'idx' to extract the desired values from other fields
data(1).something(idx)
Actually you can also use logical indexing removing 'find'.
Fabio
More Answers (0)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!