Eliminating unnecessary portions of arrays from structure.
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
bio lim
el 19 de Jun. de 2015
Comentada: bio lim
el 21 de Jun. de 2015
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 comentario
James Tursa
el 19 de Jun. de 2015
Editada: James Tursa
el 19 de Jun. de 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
Respuesta aceptada
Fabio Freschi
el 19 de Jun. de 2015
Editada: Fabio Freschi
el 19 de Jun. de 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
Más respuestas (0)
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!