For loop to save doubles in .mat files
    6 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
I have a .mat file which stores the variables:
E.g: name: ABC, type : 20 x 1; class: double 
name: DEF, type : 20 x 1; class: double 
name: GHI, type : 20 x 1; class: double
name: JKL, type: 1 x 1; class: struct
name: JKL, type: 1 x 1; class: struct
name: XYZ, type: 7 x 1; class: cell
name: LMN, type : 30 x 1; class: double
etc.
I would like to use only the (20 X1) doubles one by one in another line of code. For instance, 
load_mat = load('some_mat_file.mat')
new_var = load_mat.DEF;
new_var = load_mat.GHI;
But instead of writing repeatedly, could you provide an example of a for loop or something else? Thanks a lot in advance.
2 commentaires
  Adam Danz
    
      
 le 19 Juil 2022
				Why do you need to remove the data from the neatly organized structure (load_mat)?  
Just use load_mat.DEF instead of new_var. 
Réponse acceptée
  Voss
      
      
 le 19 Juil 2022
        load_mat = load('some_mat_file.mat')
% create a new structure, "new_mat", which contains 
% only the 20x1 doubles from load_mat:
new_mat = struct();
f = fieldnames(load_mat);
for ii = 1:numel(f)
    if isa(load_mat.(f{ii}),'double') && isequal(size(load_mat.(f{ii})),[20 1])
        new_mat.(f{ii}) = load_mat.(f{ii});
    end
end
new_mat
6 commentaires
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



