How to get_param list on subsystem blocks inport and outports
31 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi Guys,
I am trying how to figure out how to generate a list of a subsystems inports and outport names. This should be a list of the names that are listed on the block, not what is connected to it. I have been trying various things, and the closest I can get is to have get_param tell me how many inputs and how many output ports there are, but no signal names.
Thanks for the help.
3 Commenti
Bharath
il 29 Apr 2025
Modificato: Bharath
il 29 Apr 2025
open_system('task'); % Open the model
% Find only top-level Inport and Outport blocks
Inports = find_system('task', 'BlockType', 'Inport');
Outports = find_system('task','BlockType', 'Outport');
% Initialize output cell arrays
In = {};
Out = {};
% Process Inports
for j = 1:lengthInports)
% [~, name] = strtok(topInports{j}, '/'); % Remove model name
In{j} = name(2:end); % remove the initial slash
end
% Process Outports
for k = 1:length(Outports)
% [~, name] = strtok(topOutports{k}, '/');
Out{k} = name(2:end);
end
% Display results
disp(' Inports:');
disp(In);
disp(' Outports:');
disp(Out);
Risposte (3)
Purshottam Vishwakarma
il 6 Apr 2018
simBlockH = get_param(gcb, 'Handle');
handles = find_system(simBlockH, 'LookUnderMasks', 'on', 'FollowLinks', 'on', 'SearchDepth', 1, 'BlockType', 'Inport');
portNames = cellstr(get_param(handles, 'Name'))
1 Commento
Dipesh007
il 21 Mag 2020
Hello Purshottam,
Thanks for the solution it help me.
Now how can i export these Inport from command window to xls using mscript.
Thanks in advance.
Chetan Aswathanarayana
il 18 Ago 2013
You can try the below: Say your Model is Sample.mdl:
open_system('Sample');
blks = find_system('Sample','Type','block');
N = get_param(blks, 'BlockType');
j = 1;
k = 1;
for i = 1:length(N)
if ( strcmp(N{i},'Inport'))
In{j} = blks{i};
In{j} = strrep(In{j},'Sample/Subsystem/',[]);
j = j + 1;
elseif ( strcmp(N{i}, 'Outport'))
Out{k} = blks{i};
Out{k} = strrep(Out{k},'Sample/Subsystem/',[]);
k = k + 1;
end
end
In and Out are the 2 ouput cell arrays, which gives what you are looking for:
>> In
In =
'Position' 'Velocity' 'Accel'
>> Out
Out =
'Voltage'
4 Commenti
vvd03
il 21 Feb 2015
Oh! Sorry! I need this command:
... = find_system(...,'LookUnderMasks','all',...)
Chetan Aswathanarayana
il 16 Ago 2013
Hi Michael, If I understand your question correctly , you are looking to get the Input and Output Signal names.Then you can try the below:
>>model = 'Sample';
>>blks = find_system(model,'Type','block')
blks =
'Sample/In1'
'Sample/Unit Delay'
'Sample/Out1'
>>N = get_param(blks, 'BlockType')
istblks =
'Inport'
'UnitDelay'
'Outport'
The above gives the names for the list of all the blocks. And 'N' tells you which of the blocks are inports and outports.
Vedere anche
Categorie
Scopri di più su Programmatic Model Editing in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!