why " if " condition of expression is tenable , but it cant do the statement ?
조회 수: 1 (최근 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에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!