Simulink:Matlab嵌入式函数代码错误

时间:2014-04-07 14:08:03

标签: matlab simulink

我在simulink的嵌入式matlab函数中有以下代码:

 function rad = fcn(lenkwinkel)
if lenkwinkel < 0
    rad=[0 1 0 0];
elseif lenkwinkel > 0
    rad=[1 0 0 0];
else
    rad=[0 0 0 0];
end

在模拟中,我将“lenkwinkel”变量连接到MATLAB功能块,该功能块连接到带有4个端口的Mux模块。

我正在尝试使用该函数将具有4个二进制元素的向量发送到Mux块,然后将其分成4个信号。不幸的是,这不起作用。当我尝试运行时,我得到:

  

数据'rad'(#44)的推断大小('[1 4]')不匹配   来自Simulink的传播大小('[4]')。

任何人都可以帮我吗?非常感谢。

1 个答案:

答案 0 :(得分:2)

我假设您的意思是DeMux,如果不正确,请纠正我们。从它的外观来看,MATLAB功能块确定rad的大小为1-by-4,因为它是分配给它的值的大小。但是,其他东西似乎认为输出的大小应为[4]4-by-1。您是否手动将MATLAB功能块的输出指定为大小为[4]或者为了期望输入大小为[4]的demux大小?

您可以将rad的定义更改为4 x 1,或将指定给Simulink的大小更改为[1, 4]