我在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块,然后Mux块将其分成4个信号 . 不幸的是,这不起作用 . 当我尝试运行时,我得到:
数据'rad'(#44)的推断大小('[1 4]')与Simulink的传播大小('[4]')不匹配 .
谁能帮我这个?非常感谢 .
1 回答
我假设您的意思是DeMux,如果不正确,请纠正我们 . 从它的外观来看,MATLAB功能块已经确定
rad
的大小是1-by-4
,因为它是分配给它的值的大小 . 但是,其他东西似乎认为输出的大小应为[4]
或4-by-1
. 您是否手动将MATLAB功能块的输出指定为[4]
或者demux的大小以期望输入大小[4]
?您可以将
rad
的定义更改为4 x 1,或将指定给Simulink的大小更改为[1, 4]
.