2011-12-15 162 views
2
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

回答

2

如果其中任何一個變量都是浮點數,那麼進行精確的比較就會產生問題。 A < =或> =比較可能會更好。