我正在嘗試在 simulink 中使用 MATLAB FUNCTION 塊。
模型如下圖
在“time_calc”函式中,我想操作變數“Sector”,如下面的代碼所示
if sector == 1 || 2
sec = 1
elseif sector == 3 || 4
sec = 2
elseif sector == 5||6
sec = 3
elseif sector == 7||8
sec = 4
elseif sector == 9||10
sec = 5
elseif sector == 11 || 12
sec = 6
end
下面是范圍,您可以看到“扇區”的值從 0 變為 12,然后重復自身

但是我將“sec”的值設為常量“1”(如下圖所示)(可能是因為它正在將第一個“1”評估為布林值 true 并且只一遍又一遍地運行該陳述句)
如何糾正它?
uj5u.com熱心網友回復:
if sector == 1 || 2評估sector == 1,如果為真,則該陳述為真。如果它是假的,它會評估2,這總是真的,所以這個陳述總是真的。
你打算寫的是if sector == 1 || sector == 2. 您也可以將其寫為if any(sector == [1, 2]).
uj5u.com熱心網友回復:
您的功能相當于:
sec=ceil(sector/2)
@Cris Luengo 的回答顯示了您的代碼錯誤的原因。但我建議你用這一行來改變整個事情,這樣會更清楚。
uj5u.com熱心網友回復:
洗掉 elseif 并用 just if 替換它們
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/514962.html
標籤:matlab模拟链接
