以编程方式写入文档块 Matlab Simulink

Write in a DocBlock programmaticaly Matlab Simulink

我有一个 Simulink 模型,里面有一个 DocBlock,我想创建一个脚本来写入这个 DocBlock。 我已经有了这个代码:

A = find_system('MyModel', 'BlockType', 'SubSystem', 'Mask', 'on', 'MaskType', 'DocBlock');
B = get_param(A, 'UserData');
B = cell2mat(B);
B.content = 'Test';
disp(B.content);
set_param(string(A), 'UserData', B.content);

问题是在我 运行 脚本之后,如果我双击 DocBlock,数据不会改变,我不知道为什么。有人知道如何更改 DocBlock 的内容吗?

编辑:我稍微修改了 set_param 行并添加了 get_param 行以验证更改是否正在发生:

set_param(Hndle, 'UserData', B);
C = get_param(Hndle, 'UserData');

当我显示 C 时,它实际上显示了更改,但是当我双击 DocBlock 时它并没有更改我真的不明白的数据

谢谢!

我找到了如何做到这一点(感谢 mathworks 论坛中的某个人):

set_param(Hndle, 'UserData', B,'UserDataPersistent','On');

只需在 set_param 行添加 'UserDataPersistent','On'