2013-06-03 59 views
0

我已經將Simulink圖中的Matlab函數塊包含到call a matlab function中。
現在,當我要模擬的Simulink的圖,我得到的錯誤:Simulink內部的Matlab函數給出瞭解析錯誤

Errors occurred during parsing of MATLAB function 'MATLAB Function'(#384) 

然而,我不覺得我的MATLAB函數腳本中的任何錯誤:

function out = Sigma(xyz,x1,u) 
x = xyz(1); 
y = xyz(2); 
z = xyz(3); 
out = [-x^3 + 3*x + 2 + 5*y - z + u; ... 
     -0.8 - x^2 - 2*x - y;   ... 
     0.005*(4*(x1 + 1.77) - z)]; 
end 

輸入xyz是MUX信號長度爲3,x1u是標量值。那麼到底發生了什麼問題?任何人都可以瀏覽我的文件(zip檔案可用here)?

它包含三個文件。

  • 的main.m,在一些變量的主要文件中聲明和運行Simulink模型
  • Sigma.m,MATLAB函數
  • HindmarshRose.mdl,Simulink模型的副本。

回答

2

MATLAB函數塊需要知道在初始化時輸出的大小和數據類型。 在x = xyz(1);行之前添加行out = zeros(3,1);

+0

對不起,剛剛標記您的答案是正確的。我想補充一點,你也可以特別輸入輸入/輸出的大小。當你在編輯器中打開Matlab代碼時。你可以點擊編輯欄中的「編輯數據」,你可以指定它。 –