The problem
i=01;
j=01;
['F',num2str(i), '_', num2str(j),'.mat']
evaluates to
F1_1.mat
and not to
F01_01.mat
as expected.
The reason for this is that i=01
is a double type assignment and i
equals to 1
– there are no leading zeros for these types of variables.
A solution
a possible solution for the problem would be
for ii = 1:11
for jj= 1:11
filename = sprintf('F_%02d_%02d.mat', ii, jj );
load(filename);
Func(Fi_j); % run the function for each file Fi_j
end
end
Several comments:
Note the use of
sprintf
to format the doubleii
andjj
with leading zero using%02d
.You can use the second argument of
num2str
to format its output, e.g.:num2str(ii,'%02d')
.It is a good practice to use string formatting tools when dealing with strings.
It is a better practice in matlab not to use
i
andj
as loop counters, since their default value in matlab issqrt(-1)
.