嵌套“如果”语句中的for循环不工作 - MATLAB

嵌套“如果”语句中的for循环不工作 - MATLAB

问题描述:

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 

的“为”在我的代码回路上方,变量delta_h,y和percent_air已被定义和计算/输入更早。如果我将该循环作为单元格工作并手动增加Temp,则D_H等的值都会改变。但由于某种原因,当我尝试执行循环时,'if'语句似乎不起作用,并且Temp = 6000的最终值显示在工作空间中,而不是Temp的值,它产生的DELTA_H等于delta_h。这是我第一次使用MATLAB大约2年(我是第3年Mech Eng学生),所以请原谅我,如果这是一个简单的错误来解决。嵌套“如果”语句中的for循环不工作 - MATLAB

+0

'delta_h`是一个整数吗?如果不是,那么你也应该'round()',因为'DELTA_H'是四舍五入的。 – kol 2011-12-15 12:30:37

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