How to find Matlab Function blocks in a model?

33 visualizaciones (últimos 30 días)
Hadi Zyien
Hadi Zyien el 30 de Mayo de 2019
Editada: Christophe Pouillot el 14 de Nov. de 2023
I would like to use find_system to find all MATLAB Function blocks (from the User-Defined Functions library) in a model. The problem is that all MATLAB Function blocks are of BlockType SubSystem. What parameters can I use to only find the MATLAB Function blocks?

Respuesta aceptada

Monika Jaskolka
Monika Jaskolka el 5 de Jun. de 2019

Más respuestas (2)

Murugan C
Murugan C el 31 de Mayo de 2019
Hi Hadi Zyien
Yes, We have to use find_system to find matlab function block. After that, we need to use get_param command for finding matlab function block. Matlab Function block will have three to four parametes, as like
get_blocks ={' Demux ';' Ground ';' SFunction ';' Terminator '};
Use below code.
clc
clear
find_mat_fn = find_system(gcs,'BlockType','SubSystem'); % finding Subsytem
mat_fn = {' Demux ';'Ground';' SFunction ';' Terminator '}; % default parameter for Matlab Function Block
mat_blk_name = 1;
for i = 1 : length(find_mat_fn)
get_blocks = get_param(find_mat_fn{i}, 'Blocks'); % Blocks will returns what are the blocks used in subsystem
check_block = find(ismember(get_blocks,mat_fn) == 1); % comparing with default parameter
if check_block
matlab_fcn_blck{mat_blk_name} = find_mat_fn{i};
mat_blk_name = mat_blk_name + 1;
end
end
disp(matlab_fcn_blck)
/Murugan
  1 comentario
Hadi Zyien
Hadi Zyien el 4 de Jun. de 2019
Hi Murugan,
Unfortunately this approach also returns Stateflow charts.

Iniciar sesión para comentar.


Christophe Pouillot
Christophe Pouillot el 14 de Nov. de 2023
Editada: Christophe Pouillot el 14 de Nov. de 2023
Use the following code lines to find MATLAB function blocks:
rt = sfroot;
m = rt.find('-isa','Stateflow.EMChart')
It uses the powerfull yet under-recognized Stateflow API https://fr.mathworks.com/help/stateflow/ref/sfroot.html
Despite its name, I believe it is available with Simulink alone.

Categorías

Más información sobre Programmatic Model Editing en Help Center y File Exchange.

Productos


Versión

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by