How to get_param list on subsystem blocks inport and outports
46 次查看(过去 30 天)
显示 更早的评论
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 个评论
Bharath
2025-4-29
编辑:Bharath
2025-4-29
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);
回答(3 个)
Purshottam Vishwakarma
2018-4-6
simBlockH = get_param(gcb, 'Handle');
handles = find_system(simBlockH, 'LookUnderMasks', 'on', 'FollowLinks', 'on', 'SearchDepth', 1, 'BlockType', 'Inport');
portNames = cellstr(get_param(handles, 'Name'))
1 个评论
Dipesh007
2020-5-21
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
2013-8-18
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 个评论
vvd03
2015-2-21
Oh! Sorry! I need this command:
... = find_system(...,'LookUnderMasks','all',...)
Chetan Aswathanarayana
2013-8-16
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.