我有一个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'
即可。