Пишите в DocBlock программно Matlab Simulink - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть модель 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, это не меняет данные, которые я действительно не понимаю

Спасибо!

1 Ответ

0 голосов
/ 25 февраля 2020

Я нашел, как это сделать (спасибо кому-то на форуме mathworks):

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

Просто добавьте 'UserDataPersistent','On' в строку set_param.

...