1

我想在 MATLAB 中创建一个 GUI,它有两个滑块,可用于调整值 a 和 b。我知道我可以让 GUI 打开 simulink 并让 simulink 执行此操作,然后使用 UDP 打包信息,如下图所示:

http://i.imgur.com/pkxomQi.png

但是,我希望能够将这些 simulink 块转换为 GUI 滑块中的代码。更具体地说,我有兴趣对数据包输出块进行编码,以便 GUI 按钮可以发送信息。有谁知道如何做到这一点?

4

1 回答 1

1

只要您知道块的“路径”,就可以使用set_paramand设置/获取其参数get_param。在您的情况下,第一个 Constant 块具有路径'rtpacketio/Constant'- 即系统名称后跟 a /,然后是块的名称。

要找出块可用的参数,您可以执行以下操作:

>> get_param('rtpacketio/Constant', 'DialogParameters')

ans = 

         Value: [1x1 struct]    <<< This is the one you need to change
VectorParams1D: [1x1 struct]
  SamplingMode: [1x1 struct]
        OutMin: [1x1 struct]
        OutMax: [1x1 struct]
OutDataTypeStr: [1x1 struct]
     LockScale: [1x1 struct]
    SampleTime: [1x1 struct]
   FramePeriod: [1x1 struct]

请注意,这些参数的值不是structs - 从参数返回的结构数组DialogParameters表示有关参数的信息;当您设置或获取块的参数时,它必须是一个字符串(因为它要进入edit控件)。然后,在要设置此参数的代码中,您可以执行以下操作:

set_param('rtpacketio/Constant', 'Value', num2str(myConstantValue));

num2str如果您需要高精度,您可能希望用更精确的等价物替换。

于 2013-05-14T08:48:52.520 回答