我想在 MATLAB 中创建一个 GUI,它有两个滑块,可用于调整值 a 和 b。我知道我可以让 GUI 打开 simulink 并让 simulink 执行此操作,然后使用 UDP 打包信息,如下图所示:
但是,我希望能够将这些 simulink 块转换为 GUI 滑块中的代码。更具体地说,我有兴趣对数据包输出块进行编码,以便 GUI 按钮可以发送信息。有谁知道如何做到这一点?
我想在 MATLAB 中创建一个 GUI,它有两个滑块,可用于调整值 a 和 b。我知道我可以让 GUI 打开 simulink 并让 simulink 执行此操作,然后使用 UDP 打包信息,如下图所示:
但是,我希望能够将这些 simulink 块转换为 GUI 滑块中的代码。更具体地说,我有兴趣对数据包输出块进行编码,以便 GUI 按钮可以发送信息。有谁知道如何做到这一点?
只要您知道块的“路径”,就可以使用set_param
and设置/获取其参数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]
请注意,这些参数的值不是struct
s - 从参数返回的结构数组DialogParameters
表示有关参数的信息;当您设置或获取块的参数时,它必须是一个字符串(因为它要进入edit
控件)。然后,在要设置此参数的代码中,您可以执行以下操作:
set_param('rtpacketio/Constant', 'Value', num2str(myConstantValue));
num2str
如果您需要高精度,您可能希望用更精确的等价物替换。