0

我只是无法弄清楚如何进行:

我正在尝试建立一个模型:

  • 它将有 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

1 回答 1

0

由于您有 4 个不同的输入而不是带有枚举值的单个输入,因此请使用 If - Else,而不是 Case 语句。我正在添加如何做到这一点的屏幕截图。请注意,如果您想在默认情况下选择一种数据速率(如果没有任何输入非零),If 模块还允许您拥有 Else 输出。

If块设置:

  • 输入数量:4
  • 如果表达式:u1 ~= 0
  • Elseif 表达式:u2 ~=0, u3 ~= 0, u4 ~= 0

该模型由If连接到一组块的If Action Subsystem块组成。后者的输出可以使用Merge块组合成单个信号。

顶级模型

If 动作子系统之一

于 2011-06-07T16:17:32.790 回答