get_param
Get parameter names and values
Description
returns the value value
= get_param(object
,parameter
)value
of the specified parameter
parameter
for the target object specified by
object
. The target object can be a model, subsystem,
library, block, line, port, or bus element port element specified as a path or a
handle.
Open or load the related Simulink® model, subsystem, or library before calling this function.
Examples
Get Block Parameter Values Using Block Paths
You can get the value of a block parameter using the get_param
function with these input arguments:
Block handle or full block path including block name, for example,
'myModel/mySubsystem/myblock'
Parameter name
For more information about block handles and paths, see Get Handles and Paths.
In this example, you get the coefficients of the transfer function specified by a Transfer Function block named Alpha-sensor Low-pass Filter
.
The block is located in the
Controller
subsystem of theslexAircraftExample
model.The coefficients of the transfer function numerator are stored in the
Numerator
parameter. The coefficients of the transfer function denominator are stored in theDenominator
parameter.
Open the example. Then, load the slexAircraftExample
model.
mdl = 'slexAircraftExample';
load_system(mdl)
Get the transfer function coefficients.
path = [mdl,'/Controller/Alpha-sensor Low-pass Filter']; num = get_param(path,'Numerator')
num = '[1]'
denom = get_param(path,'Denominator')
denom = '[Tal,1]'
When the block path is long and you want to get multiple parameters, consider using block handles.
Get Block Parameter Values Using Block Handles
You can get the value of a block parameter using the get_param
function with these input arguments:
Block handle or full block path including block name, for example,
'myModel/mySubsystem/myblock'
Parameter name
In this example, you get the coefficients of the transfer function specified by a Transfer Function block named Alpha-sensor Low-pass Filter
.
The block is located in the
Controller
subsystem of theslexAircraftExample
model.The coefficients of the transfer function numerator are stored in the
Numerator
parameter. The coefficients of the transfer function denominator are stored in theDenominator
parameter.
Open the example. Then, get the block handle using the getSimulinkBlockHandle
function. To simultaneously get the block handle and load the model, specify the second argument for the getSimulinkBlockHandle
function as true
.
path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true)
h = 755.0043
To get the parameter values, specify the block using the handle. Do not manually enter the value of the handle. The value output by the getSimulinkBlockHandle
function in the MATLAB® Command Window may not match the handle value due to rounding. Instead, assign the handle to a variable, then use the variable name to specify the block. In this example, the value is assigned to the variable named h
.
num = get_param(h,'Numerator')
num = '[1]'
denom = get_param(h,'Denominator')
denom = '[Tal,1]'
Get Block Parameter Names
You can get the value of a block parameter using the get_param
function with these input arguments:
Block handle or full block path including block name, for example,
'myModel/mySubsystem/myblock'
Parameter name
This example shows how to get the parameter name.
Suppose you want to get the transfer function coefficients of the Transfer Function block named Alpha-sensor Low-pass Filter
in the slexAircraftExample
model. To do so, you must get the names of the parameters that store the transfer function coefficients.
Open the example.
Get the handle of the Transfer Function block named Alpha-sensor Low-pass Filter
. To simultaneously get the block handle and load the model, specify the second argument for the getSimulinkBlockHandle
function as true
.
path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true);
Get the names of all the block parameters of the Transfer Function block named Alpha-sensor Low-pass Filter
using the get_param
function.
get_param(h,'DialogParameters')
ans = struct with fields:
Numerator: [1x1 struct]
Denominator: [1x1 struct]
ParameterTunability: [1x1 struct]
AbsoluteTolerance: [1x1 struct]
ContinuousStateAttributes: [1x1 struct]
The output shows that the transfer function coefficients are specified using a Numerator
parameter and a Denominator
parameter. Use these parameter names to get the coefficients in the numerator and denominator of the transfer function.
num = get_param(h,'Numerator'); denom = get_param(h,'Denominator')
denom = '[Tal,1]'
Get Block Paths and Names
You can get the value of a block parameter using the get_param
function with these input arguments:
Block handle or full block path including block name, for example,
'myModel/mySubsystem/myblock'
Parameter name
This example shows how to get the full block path and name.
Get Paths and Names
Suppose you want to get the transfer function coefficients of all Transfer Function blocks in the slexAircraftExample
model that act as filters. To do so, you must get the names and paths of all Transfer Function blocks in the model that act as filters.
Open the example. Then, load the slexAircraftExample
model.
mdl = 'slexAircraftExample';
load_system(mdl)
Get the paths of all blocks in the slexAircraftExample
model using the find_system
function.
paths = find_system(mdl,'Type','Block');
When no search depth is specified, the find_system
function finds all blocks from the specified level of the model hierarchy and all lower levels the specified level contains. Since slexAircraftExample
is the top level of the model hierarchy, the command returns all blocks from every level of the model hierarchy.
Alternatively, if you know which subsystem the filters are in, use the get_param
function. The get_param
function only returns the paths of the blocks located in the specified level of model hierarchy, not in any of the subsystems the specified level contains. In this example, the filters are at the top level of the Controller
subsystem.
paths=get_param(mdl+'/Controller','blocks');
Filter Paths and Names by Keyword
In the slexAircraftExample
model, the Transfer Function blocks that act as filters have the word filter
or Filter
in their block name. Once you have the list of block paths, get the ones that contain the word filter
or Filter
.
filterpaths = paths(contains(paths,{'Filter','filter'}));
Get Block Parameter Values
Use the block names to get the transfer function coefficients. For example, use these commands to get the transfer function coefficients for the Alpha-sensor Low-Pass
filter.
num = get_param(filterpaths{1},'Numerator'); denom = get_param(filterpaths{1},'Denominator')
denom = '[Tal,1]'
Display Block Types
Get a list of the types of blocks in the vdp
model.
Open the example. Then, load the vdp
model.
load_system('vdp')
Get a list of block paths and names for the vdp
model.
blockpaths = find_system('vdp','Type','Block');
For each block in the vdp
model, get the value of the BlockType
parameter.
blocktypes = get_param(blockpaths,'BlockType')
blocktypes = 12x1 cell
{'CustomCallbackButton'}
{'Constant' }
{'SubSystem' }
{'Product' }
{'Scope' }
{'Math' }
{'Sum' }
{'Sum' }
{'Integrator' }
{'Integrator' }
{'Outport' }
{'Outport' }
Get Model Parameter Values
You can get the value of a model parameter using the get_param
function with these input arguments:
Model name
Model parameter name
The value of the IntegerOverflowMsg
parameter indicates how a model handles integer overflow. The model can output no message, a warning message, or an error message.
Suppose you want to compare the value of the IntegerOverflowMsg
parameter of two models.
Open the example. Then, load the vdp
and f14
models.
load_system({'vdp','f14'})
Get the value of the IntegerOverflowMsg
parameter for the vdp
and f14
models.
vdpval = get_param('vdp','IntegerOverflowMsg'); f14val = get_param('f14','IntegerOverflowMsg');
When integer overflow occurs, the vdp
model outputs a warning, while the f14
model does not output any message.
Compare the two parameter values using the strcmp
function.
strcmp(vdpval,f14val)
ans = logical
0
The strcmp
function outputs 0
, which indicates that the two models have different values for the IntegerOverflowMsg
parameter.
Get Model Parameter Names
You can get the value of a model parameter using the get_param
function with these input arguments:
Model name
Model parameter name
Suppose you want to compare the message parameter values of two models to ensure consistency in terms of which situations are handled with no message versus a warning message versus an error message. However, you do not know the names of all the message parameters.
Open the example. Then, load the vdp
and f14
models.
load_system({'vdp','f14'})
Get a list of all model parameters.
params = get_param('vdp','ObjectParameters');
The function returns a structure. Create a cell array that contains the model parameter names.
names = fieldnames(params);
Message parameters end in the abbreviation Msg
. Get the all model parameter names that contain the abbreviation Msg
.
msgnames = names(contains(names,'Msg'));
Compare the message parameter values of the vdp
and f14
models. Output the names of the parameters that have different values.
vdpval = cell(1,length(msgnames)); f14val = vdpval; for i=1:length(msgnames) vdpVal{i} = get_param('vdp',msgnames{i}); f14Val{i} = get_param('f14',msgnames{i}); if(strcmp(vdpVal{i},f14Val{i})<1) disp(msgnames{i}) end end
IntegerOverflowMsg IntegerSaturationMsg
Two message parameters have different values.
Get Options for Parameter Values and Object Property Values
To get a list of options for any of these, use the get_param
function with the keyword options
:
A block parameter
A model parameter
Object properties, for example, the horizontal alignment options for an annotation
This example shows how to get a list of options for a block parameter, a masked parameter, and a model parameter.
Get List of Options for Block Parameter
Open the example. Then, load the vdp
model.
load_system('vdp')
Get a list of options for the Output signal type
parameter of the Square block.
funcoptions = get_param('vdp/Square','options@OutputSignalType')
funcoptions = 1x3 cell
{'auto'} {'real'} {'complex'}
Get List of Options for Masked Subsystem Parameter
Get a list of options for the Read/Write permissions
parameter of the masked Subsystem block named Mu
.
get_param('vdp/Mu','options@Permissions')
ans = 1x3 cell
{'ReadWrite'} {'ReadOnly'} {'NoReadOrWrite'}
Get List of Options for Model Parameter
Get a list of options for the model parameter named AlgebraicLoopMsg
.
get_param('vdp','options@AlgebraicLoopMsg')
ans = 1x3 cell
{'none'} {'warning'} {'error'}
Get List of Options for Annotation
Find the annotations in the vdp
model.
h = find_system(gcs,'FindAll','on','Type','annotation');
Output the annotation text corresponding to the handles in the matrix h
.
get_param(h,'PlainText')
ans = 3x1 cell
{'Copyright 2004-2022 The MathWorks, Inc.'}
{'Van der Pol Equation' }
{'x'' - µ(1-x^2) x' + x = 0' }
Get a list of options for the horizontal alignment of the title annotation, 'Van der Pol Equation'
.
get_param(h(2),'options@HorizontalAlignment')
ans = 1x3 cell
{'left'} {'center'} {'right'}
Get Value of Masked Parameter
You can access the value of a masked block parameter using the get_param
function with the keyword value
.
Open the example. Then, open the vdp
model.
open_system('vdp')
Get the value of the gain
parameter of the masked Subsystem block named Mu
.
get_param('vdp/Mu','value@gain')
ans = 1
In the model, double-click the block.
On the mask, move the slider that changes the gain
parameter.
Get the value of the gain
parameter again.
get_param('vdp/Mu','value@gain')
ans = 1
Get Root Parameter Names and Values
Get the name and value of a global parameter.
Get List of Global Parameter Names
You can get a list of global parameter names by finding the difference between the Simulink® root parameter and the model parameter names.
Open the example. Then, load the vdp
model.
load_system('vdp')
Get the names of all model parameters.
modelparamnames = fieldnames(get_param('vdp','ObjectParameters'));
Get a list of Simulink root parameter names.
rootparamnames = fieldnames(get_param(0,'ObjectParameters'));
Get the names of global parameters by finding the difference between the lists of root and model parameter names.
globalparamnames = setdiff(rootparamnames,modelparamnames);
Get Global Parameter Value
Get the value of a global parameter.
globalparamval = get_param(0,'CurrentSystem')
globalparamval = 'vdp'
Input Arguments
object
— Name, path, or handle of object or root
character vector | cell array of character vectors | string array | numeric scalar | 0
Name, path, or handle of object or root, specified as a character vector, cell array
of character vectors, string array, numeric scalar, or 0
.
How you specify the target object depends on its type.
Model — Model name or handle.
Subsystem — Subsystem name or handle.
Library — Library name or handle.
Block — Block path or handle.
Line — Line handle.
Port — Port handle.
Port element — Path composed of the model name or subsystem block path, a forward slash, and the port name or bus element path. For a bus element port, the bus element path provides the hierarchy from the top-level bus to the target element, separating each name in the hierarchy with a dot.
To specify multiple objects with a common parameter, use a cell array of character vectors, a string array, or an array of handles. All the specified objects must have the specified parameter, otherwise, the function returns an error.
Specify 0
to get root parameter names, including global
parameters and model parameters for the current Simulink session.
Global parameters include Editor preferences and Simulink Coder™ parameters.
Model parameters include configuration parameters, Simulink Coder parameters, and Simulink Code Inspector™ parameters.
Example: 'vdp/Mu'
Example: 'mymodel/Subsystem1/Out1.nonsinusoidal.saw'
Tips
If you make multiple calls to
get_param
for the same block, specify the block with a numeric handle. This method is more efficient than using the full block path withget_param
. UsegetSimulinkBlockHandle
to get a block handle.Do not try to manually specify the number of a handle, for example,
5.007
, because you usually need to specify more digits than MATLAB® displays. Assign the handle to a variable and use that variable name.
Data Types: char
| string
| double
parameter
— Parameter, property, or attribute name
character vector | string scalar
Parameter, property, or attribute name, specified as a character vector or string scalar. Some names are case sensitive.
This table shows special cases.
Specified Parameter | Result |
---|---|
'ObjectParameters' | Parameter names of the specified object as separate fields in a structure array. |
'DialogParameters' | Block dialog box parameter names as separate fields in a structure array. If the block has a mask, the function instead returns the mask parameters. |
For information about parameters, properties, or attributes, see the programmatic use information on the corresponding reference pages. For example:
Models — See the configuration parameter reference pages.
Blocks — See Common Block Properties and block reference pages.
Ports — See the Signal Properties tool reference page.
Port elements — See the In Bus Element and Out Bus Element block reference pages.
Example: 'ObjectParameters'
Example: 'Solver'
Example: 'SimulationCommand'
Example: 'Position'
Example: 'NameLocation'
Data Types: char
| string
Output Arguments
value
— Parameter value
format determined by parameter type
Parameter value, returned in the format determined by the parameter type. If you specify multiple objects, the output is a cell array.
This table shows special cases.
Specified Parameter | Result |
---|---|
'ObjectParameters' | Parameter names of the specified object as separate fields in a structure array. |
'DialogParameters' | Block dialog box parameter names as separate fields in a structure array. If the block has a mask, the function instead returns the mask parameters. |
If you get the root parameters by specifying
get_param(0,'ObjectParameters')
, then the output
value
is a structure array with the root parameter names as
separate fields in the structure. Each parameter field is a structure containing these fields:
Type — Parameter type values are
'boolean'
,'string'
,'int'
,'real'
,'point'
,'rectangle'
,'matrix'
,'enum'
,'ports'
, or'list'
.Enum — Cell array of enumeration character vector values that applies only to
'enum'
parameter types.Attributes — Cell array of character vectors defining the attributes of the parameter. Values are
'read-write'
,'read-only'
,'read-only-if-compiled'
,'write-only'
,'dont-eval'
,'always-save'
,'never-save'
,'nondirty'
, or'simulation'
.
Version History
Introduced before R2006a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)