Simulink:Matlab嵌入式函数代码错误
我在simulink中的嵌入式matlab函数中有以下代码:Simulink:Matlab嵌入式函数代码错误,matlab,simulink,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 函数rad=fcn(lenkwinkel) 如果lenkwinkel0 rad=[1 0 0]; 其他的 rad=[0]; 结束 在模拟中,我将“
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
函数rad=fcn(lenkwinkel)
如果lenkwinkel<0
rad=[01 0];
elseif lenkwinkel>0
rad=[1 0 0];
其他的
rad=[0];
结束
在模拟中,我将“lenkwinkel”变量连接到MATLAB功能块,该功能块连接到一个具有4个端口的Mux块
我正在尝试使用该函数将包含4个二进制元素的向量发送到Mux块,然后Mux块应将其拆分为4个信号。不幸的是,这是行不通的。当我尝试运行此功能时,我得到:
数据“rad”(#44)的推断大小(“[1 4]”)不匹配
从Simulink传播的大小(“[4]”)
有人能帮我吗?非常感谢。我想你的意思也是DeMux,如果不正确,请纠正我们。从外观上看,MATLAB功能块已确定
rad
的大小为1×4
,因为这是分配给它的值的大小。然而,另一种观点似乎认为输出的大小应该是[4]
或4x1
。您是否已手动指定MATLAB功能块的输出为大小[4]
,或demux的大小为输入大小[4]
您可以将
rad
的定义更改为4x1,或者将指定给Simulink的大小更改为[1,4]
您是说解复用吗?如果demux连接到范围,则所述模型适用于我(在R2013b中)。您将什么连接到demux的输出?您好。是的,对不起。我指的是DeMux。在左侧,解复用器连接到功能,在右侧,它分成4个端口,每个端口连接到一个产品块。谢谢,我明白你的意思。我不知道我必须手动设置MATLAB函数的输出。右键单击功能块,选择“Explore”并将输出大小设置为“[14]”完成了操作。谢谢。这对我很有用,但我更喜欢输出大小是否可以“继承”。你对此有什么建议吗?(或者这是一个单独的问题?)。。。你知道为什么转置不能解决问题吗?