How to get 2 variables form loading mat fille
1 view (last 30 days)
Show older comments
I want to load lots of mat file like (a1_2.mat......a50_40.mat) and take two variables(c,d) from each mat file and then put variables in a matrix like this.[c1 d1; c2 d2.....]
for n = 1 : 50
for k=1:40
y=load(['a',num2str(n),'_', num2str(k) '.mat']);
c = y.c;% load first variable
d=y.d; % load second variable and
all(:,1)=c;
all(:,2)=d;
end
end
but I can't get the final matrix correctly.
Thanks in advance for your help.
0 Comments
Accepted Answer
Walter Roberson
on 5 Feb 2016
for n = 1 : 50
for k = 1:40
y = load(['a',num2str(n),'_', num2str(k) '.mat']);
c = y.c;% load first variable
d = y.d; % load second variable and
all_vals(n,k,1) = c;
all_vals(n,k,2) = d;
end
end
all_vals = reshape(all_vals, [], 2);
0 Comments
More Answers (1)
Star Strider
on 5 Feb 2016
Assuming that you cannot pre-allocate your matrix, something like this could work:
all_vars = [];
for n = 1 : 50
for k=1:40
y=load(['a',num2str(n),'_', num2str(k) '.mat']);
c = y.c;% load first variable
d = y.d; % load second variable and
all_vars = [all_vars; [c d]];
end
end
I changed the name of your matrix, because all is a function name you could need later in your code. Naming variables the same as built-in MATLAB functions is called ‘overshadowing’. MATLAB will use the variable instead of the function afterwards, making the function useless until you change the variable name.
2 Comments
See Also
Categories
Find more on Matrix Indexing 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!