Во-первых, вам нужно получить маркеры для всех блоков MATLAB Function
в вашей модели.Это можно сделать с помощью
blockHandles = find(slroot, '-isa', 'Stateflow.EMChart')
. Обратите внимание, что блоки MATLAB Function
на самом деле являются просто особым типом диаграммы Stateflow
(которая поставляется с Simulink
, не требуя лицензии для самой Stateflow
).Если вам нужен только дескриптор определенного блока, вы можете уточнить поиск, используя
blockHandles = find(slroot, '-isa', 'Stateflow.EMChart', 'Path', gcb)
, где gcb
- имя интересующего вас блока.
Текст вфункция хранится в свойстве Script
объекта.Чтобы отобразить его (или записать в него), используйте
blockHandles(idx).Script
, где idx
- индекс, указывающий, какой из блоков вас интересует. Вы можете использовать его в цикле для поиска во всех них,
for idx = 1:numel(blockHandles)
strfind(blockHandles(idx).Script,'text_to_search_for')
end