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

 채택된 답변

madhan ravi
madhan ravi 2019년 1월 5일
편집: madhan ravi 2019년 1월 5일

1 개 추천

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 !
madhan ravi
madhan ravi 2019년 1월 7일
Anytime :) , no problem.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Stephan
Stephan 2019년 1월 5일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2019년 1월 5일

댓글:

2019년 1월 7일

Community Treasure Hunt

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

Start Hunting!

Translated by