Simple operations with struct
10 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Jórdan Venâncio Leite
il 5 Apr 2020
Commentato: Image Analyst
il 11 Giu 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 Commento
Image Analyst
il 11 Giu 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?
Risposta accettata
Ameer Hamza
il 5 Apr 2020
Modificato: Ameer Hamza
il 5 Apr 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 Commenti
Più risposte (1)
David Hill
il 5 Apr 2020
yourStuck.field(yourStuck.field<50000)=0;
1 Commento
Ameer Hamza
il 5 Apr 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;
Vedere anche
Categorie
Scopri di più su Structures in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!