2013-06-03 48 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代码时。你可以点击编辑栏中的“编辑数据”,你可以指定它。 –