Simple operations with struct
    6 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!



