问题描述
|
我只是无法弄清楚如何进行:
我正在尝试建立模型:
它将有4个输入(布尔i / p)
它将有1个输出(签名:8位)
它将执行以下操作:
基于哪个输入为1,它将给出反映Datarate的相应输出。
如果我必须用Matlab编写,我会写这样的东西:
if (portA==1)
PSDU_Data_Rate=1;
elseif(portB==1)
PSDU_Data_Rate=2;
elseif (portC==1)
PSDU_Data_Rate=5.5;
elseif(portD==1)
PSDU_Data_Rate=11;
end
我附上了我为相同功能而开发的模型部分:
关于如何进行或进行代码更正的任何想法或关于如何对其进行改进的建议将非常有帮助。
谢谢
解决方法
由于您有4个不同的输入,而不是带有枚举值的单个输入,因此请使用If-Else而不是Case语句。我正在添加如何完成此操作的屏幕截图。请注意,如果要默认选择数据速率之一(如果输入都不是非零的话),则If块还可以让您获得Else输出。
If
块设置:
输入数量:4
如果表达式:u1〜= 0
Elseif表达式:u2〜= 0,u3〜= 0,u4〜= 0
该模型由连接到一组ѭ3consists块的If
块组成。后者的输出可以使用4块合并为单个信号。