For loop to save doubles in .mat files
3 views (last 30 days)
Show older comments
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.
Accepted Answer
Voss
on 19 Jul 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 Comments
More Answers (0)
See Also
Categories
Find more on Whos in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!