Simple operations with struct
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jórdan Venâncio Leite
el 5 de Abr. de 2020
Comentada: Image Analyst
el 11 de Jun. de 2020
How to exclude elements of a struct with a value less than a limit?
For example, if a struct has only one field and this field has the values 220000 and 40000. How to exclude (make 0) only the values less than 50000?
1 comentario
Image Analyst
el 11 de Jun. de 2020
Original question before it gets edited away:
How to exclude elements of a struct with a value less than a limit?
For example, if a struct has only one field and this field has the values 220000 and 40000. How to exclude (make 0) only the values less than 50000?
Respuesta aceptada
Ameer Hamza
el 5 de Abr. de 2020
Editada: Ameer Hamza
el 5 de Abr. de 2020
idx = [struct_name.fieldname] > 50000;
new_struct = struct_name(idx);
new_struct will only contain elements where the field name is greater than 50000.
If you don't want to delete those elements, and just want to set them to 0,
new_struct = struct_name;
idx = [new_struct.fieldname] > 50000;
[new_struct(idx).fieldname] = deal(0);
In this case, new_struct will have same elements as original struct_name but the elements set to 0.
0 comentarios
Más respuestas (1)
David Hill
el 5 de Abr. de 2020
yourStuck.field(yourStuck.field<50000)=0;
1 comentario
Ameer Hamza
el 5 de Abr. de 2020
David, this syntax is not supported in MATLAB
s(1).a = 1;
s(2).a = 2;
s(3).a = 3;
s(4).a = 4;
s.a(s.a < 3) = 0;
Error using <
Too many input arguments.
Error in Test (line 6)
s.a(s.a < 3) = 0;
Ver también
Categorías
Más información sobre Structures en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!