在'for'循环内部嵌套'if'语句不起作用 - MATLAB

时间:2011-12-15 12:25:15

标签: matlab if-statement for-loop

for Temp = 1000:10:6000

cp_CO2 = ((2e-18)*Temp.^5) - ((4e-14)*Temp.^4) + ((3e-10)*Temp.^3) - ((8e-07)*Temp.^2) + (0.0013*Temp) + 0.5126;
cp_CO = ((5e-12)*Temp.^3) - ((7e-08)*Temp.^2) + (0.0003*Temp) + 0.9657;
cp_H2O = ((7e-12)*Temp.^3) - ((1e-07)*Temp.^2) + (0.0008*Temp) + 1.6083;
cp_N2 = ((-1e-18)*Temp.^5) + ((2e-14)*Temp.^4) - ((8e-11)*Temp.^3) + ((1e-07)*Temp.^2) + (0.0001*Temp) + 0.9985;

D_H = (y(1)*cp_CO2*44*(25-Temp)) + (y(2)*cp_CO*28*(25-Temp)) + (y(3)*cp_H2O*18*(25-Temp)) + (percent_air*x_final(2)*3.76*28*(25-Temp));

DELTA_H = round(D_H);

if DELTA_H == delta_h
    break
end        

end

我的代码中的'for'循环在上面,变量delta_h,y和percent_air已经定义并且先前已经计算/输入。如果我作为单元格在循环上工作并手动增加Temp,那么D_H等的值都会改变。但由于某些原因,当我尝试执行循环时,'if'语句似乎没有生效,并且Temp = 6000的最终值显示在工作空间而不是Temp的值,它产生的DELTA_H等于delta_h的那个。这是我第一次使用MATLAB大约2年(我是第3年机械英语学生)所以请原谅我,如果这是一个简单的修复错误。

1 个答案:

答案 0 :(得分:2)

如果其中一个变量是浮点数,那么进行精确比较是有问题的。 < =或> =比较可能会更好。