Eliminating unnecessary portions of arrays from structure.
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
James Tursa
2015-6-19
编辑:James Tursa
2015-6-19
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
采纳的回答
Fabio Freschi
2015-6-19
编辑:Fabio Freschi
2015-6-19
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!