Deleting specific values of fields inside a struct array
Mostrar comentarios más antiguos
Hello everyone,
I have a struct array with multiple fields. All fields are arrays with the same length.
a=struct();
a.field1=rand(20,1);
a.field2=rand(20,1);
a.field3=rand(20,1);
Is there away to delet a specific element from all field arrays at the same time?
So for example delete element 3 from field1, field2 and field3 under specific conditions, for example when field3 value==0.5.
I just know this way:
a.field1(a.field3==0.5)=[];
a.field2(a.field3==0.5)=[];
a.field3(a.field3==0.5)=[];
But is it possible to do this in on line instead of handling every field seperatly?
Best regrads
Marc
1 comentario
Stephen23
el 2 de Mayo de 2020
"But is it possible to do this in on line instead of handling every field seperatly?"
You could use a loop or structfun (which just hides the loop inside).
Note that comparing floating point numbers for exact equality is a common cause of bugs, you should probably compare the absolute difference against a tolerance:
idx = abs(A-B)<tol
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Structures en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!