Search code examples
matlabsimulinkdocblocks

Write in a DocBlock programmaticaly Matlab Simulink


I have a Simulink model with a DocBlock inside and i would like to create a script to write inside this DocBlock. I already have this code :

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);

The problem is after i run the script if i double click on the DocBlock the data doesn't change i don't know why. Do someone know how to change the content of a DocBlock ?

Edit : I modify a little bit the set_param line and add a get_param line to verify that the change is happening :

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

And when i display C, it actually display the change but when i double click on the DocBlock it doesn't change the data i really don't understand

Thanks !


Solution

  • I found how to do this (thanks to someone in the mathworks forum) :

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

    Just add 'UserDataPersistent','On' in the set_param line.