why " if " condition of expression is tenable , but it cant do the statement ?
    조회 수: 10 (최근 30일)
  
       이전 댓글 표시
    
here is my code
syms E Eg V g;
c=3 .*(10.^8); % m/s
h=4.1361e-015; % eV.s
k=8.62E-5;
Tc=300;
Eg=1.48;
Ei=0.5;
Ec=Eg-Ei;
a=quad( @(E)(E.^2) ./ (exp(E./0.5172)-1), Ei , Ec)- quad(@(E)(E.^2) ./ (exp(( E-Uiv )./0.0259)-1),Ei,Ec);
b=quad( @(E)(E.^2) ./ (exp(E./0.5172)-1), Ec , Eg)-quad(@(E)(E.^2) ./ (exp(( E-Uci )./0.0259)-1),Ec,Eg);
for Uiv = 0.484:0.0001:0.485
for Uci = 0.905:0.0001:0.906
    a
    b
if a==b
    Uiv
    Uci
end
end
end
i check a and b but it doesnt give me Uiv & Uci
thx :)
댓글 수: 0
채택된 답변
추가 답변 (1개)
  Venn Ravichandran
 2012년 5월 2일
        Use:
if abs(a-b) <= eps
    % my operations here
end
Floating point comparisons can cause such errors, since you will have small changes (~1e-10) in the numbers generated by your {for} loop.
참고 항목
카테고리
				Help Center 및 File Exchange에서 Scope Variables and Generate Names에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


