Error in the for loop or equality sign
Mostrar comentarios más antiguos
Hello,
I am using following code to check the discharges in the pipelines connecting three reservoirs. But the Loop is not working I guess. Could anybody tell the error?
Ela=100;
Elb=70;
Elc=30;
ka=1563.085;
kb=38.10;
kc=12729.55;
x=70:0.01:75;
for i=1:x;
Qa=sqrt((Ela-x)/ka);
Qb=sqrt((x-Elb)/kb);
Qc=sqrt((x-Elc)/kc);
if Qb+Qc==Qa
disp(Qa)
disp(Qb)
disp(Qc)
break
else
continue
end
end
5 comentarios
Alex Mcaulley
el 21 de Mayo de 2019
What do you mean by "is not working"? What do you expect?
Walter Roberson
el 21 de Mayo de 2019
x=70:0.01:75;
for i=1:x;
When you execute that for loop what do you expect the first value of i to be? What do you expect the second value of i to be? What do you expect the last value to be?
Faisal Baig
el 21 de Mayo de 2019
Walter Roberson
el 21 de Mayo de 2019
Please answer my question about the expected values of i
Faisal Baig
el 21 de Mayo de 2019
Respuestas (1)
Jos (10584)
el 21 de Mayo de 2019
Welcome to the world of floating point arithmetic, where
if 0.1+0.2 == 0.3
disp('0.1+0.2 equals 0.3')
else
disp('0.1+0.2 does not equal 0.3')
end
More info here:
You want to check with a tolerance:
if abs(Qa+Qb-Qc) < 1e-10
disp('Qa+Qb practically equals Qc')
end
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!