This question is closed. Reopen it to edit or answer.

Loading multiple .mat or Excel files and maniplulate them in a double for loop

1 view (last 30 days)
I've got 3 .mat files, saved in an excel format as well with a size each 4x1.
These are var1, var2 and var3.
I'd like to load those three .mat files within a for loop and then multiply them by a vector with changing values (hence the double for loop) and at the end create a single .mat file.
My code until now looks like
for i=1:n
fr= fractions(:,i)./sum(fractions(:,1:n),2) %%where the fractions matrix is a 4*3 matrix
load(['var' int2str(i)]) %%%I assume I need something additional here
for j=1:A
Var = ???
% I want to multiply fr(j) by each var, i.e. I'd like to
multiply fr(j) for i=1 with var1, then for the second
external loop I want to multiply fr(j) for i=2 with var2
and so on
Any thoughts please?

Answers (1)

dpb on 28 May 2015
Edited: dpb on 28 May 2015
fr=bxsfun(@rdivide,fractions,sum(fractions,2)); % ratios
for i=1:N % get the three arrays
load ['var' int2str(i)]];
res=[var1 var2 var3].*fr;
save res
ADDENDUM This illustrates the problem inherent in using variable names of the type VarN; once you get 'em that way, it's not easy to do anything with 'em. See the FAQ on ways around it; for the immediate case with a limited number I just went ahead brute force, but it's a bad habit to get into...

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!