我在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]')。
任何人都可以帮我吗?非常感谢。
答案 0 :(得分:2)
我假设您的意思是DeMux,如果不正确,请纠正我们。从它的外观来看,MATLAB功能块确定rad
的大小为1-by-4
,因为它是分配给它的值的大小。但是,其他东西似乎认为输出的大小应为[4]
或4-by-1
。您是否手动将MATLAB功能块的输出指定为大小为[4]
或者为了期望输入大小为[4]
的demux大小?
您可以将rad
的定义更改为4 x 1,或将指定给Simulink的大小更改为[1, 4]
。