Loading indexed .mat files using a for loop

I would like to know how to load several .mat files using a for loop. My files are as follows T1, T2,... and E1, E2,.... My code is shown below. As you can see I tried using num2str but that didn't work. Also tried strcat to create strings following the file names and then load them. There's probably something I am missing, any help ?
Thank You !
mu_Au = -0.1353383;
mu_Si = 0.1353383;
k_B = 8.6173303e-5;
T = 300;
e0= 1.6021766e-19;
h = 6.62607e-34;
fermi_func = @(E,mu) 1./(1 + exp((E-mu)/(k_B*T)));
for i=1:2
E = load('E'num2str(i) '.mat');
T = load('T'num2str(i) '.mat');
integral = T.*[fermi_func(E,mu_Si) - fermi_func(E,mu_Au)];
I(i) = 2*(e0^2/h)*cumtrapz(E,integral);
s(i) = sum(I);
mu_Au = mu_Au - 0.121;
mu_Si = mu_Si + 0.121;
end

 采纳的回答

Forgot the square brackets [ ] and commas , :
E = load(['E',num2str(i),'.mat']);
T = load(['T',num2str(i),'.mat']);
Alternative is to use sprintf():
E = load(sprintf('E%d',i);
T = load(sprintf('T%d',i);

2 个评论

Hi Madhan,
Greatly appreciate your help, it worked. Sorry for my late reply !
Anytime :) , no problem.

请先登录,再进行评论。

更多回答(1 个)

Hi,
maybe this function from FEX will help to create the needed file names:
Best regards
Stephan

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by