[英]translate excel equation to matlab
我需要將Excel公式轉換為Matlab的幫助。
我已經在excel中翻譯了一個簡單的if語句,例如:
Ps(t)=IF(T(t)<Tp,P,0)
進入matlab如下:
if Ps(t)=T(t)<Tp;
p;
0;
end
這個對嗎? 如果是這樣,我該如何翻譯更復雜的excel公式,例如:
=IF(F6>273.16,(IF(AND(AB5>0,Y6>0),MIN(Y6*3600/$AE$11,AB5),0)),0)
如果您在Excel中具有Ps(t)=IF(T(t)<Tp,P,0)
,則在Matlab中可以執行以下操作:
Ps = zeros(1, length(T));
Ps(T<Tp) = p;
其中T是一個向量。 這讀取將Ps
定義為長度與T
相同的零數組。 對於這些索引T
其中T(i)<Tp
設置在那些PS到p
。 這是邏輯索引。
另一個表達式:
=IF(F6>273.16,(IF(AND(AB5>0,Y6>0),MIN(Y6*3600/$AE$11,AB5),0)),0)
必須根據此方程在Excel中的運算方式進行分析。 該公式是否沿着同一列的行復制? 這個公式來自哪個單元格?
假設這是從單元格J6中獲取的,然后遍歷我得到的行:
AE11 = 100; %this is the constant from cell AE11
for i= 2:length(F)
if F(i) > 273.16
if AB(i) > 0 & Y(i) >0;
J(i) = min( Y(i)*3600/ AE11 ,AB(i-1));
else
J(i) = 0;
end
else
J(i) = 0;
end
end
即使似乎引用了另一行(AE5,當所有內容都與第6行有關時),也可以使用矢量化版本進行改進。
=IF(M5>$AD$17,$AD$5+$AD$8,IF(N5>0,$AD$5+(O4-$AD$5)*EXP((IF(F5>273.16,$AD$11,$AD$14))*0.04167),0))
excel方程如何轉換為matlab? 我還不清楚如何處理最終的嵌套If語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.