1

在 MATLAB/Simulink 中,我得到了一个带有块的 Simulink 模型,在那里我将一个结构放入了一个块的 UserData 中。如何获取或比较结构内的数据?

我是这样设计的:

my_struct = struct('Function', 'receive', 'Version', '0.1');
set_param(gcb, 'UserData', my_struct);

现在我如何在我的 matlab 脚本中检查我找到的哪些块:

all_blocks = find_system(gcs, 'Tag', 'All_blocks_have_this_tag');

在他们的'UserData'.'Function'中有值'receive'?

4

1 回答 1

1

我找到了,您可以使用 get_param() 来获取块,但它会在单元格中返回它,而不是在结构中。因此,如果您使用 {1,1} 访问单元格,那么您可以从那里访问结构

param = get_param(blocks(i), 'UserData');
param{1,1}.Function

这将返回块的 UserData 中结构的 Function 的值

于 2015-11-16T13:24:45.090 回答