首页 文章

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

提问于
浏览
2

我在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 回答

  • 2

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

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

相关问题