本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

get_param

获取参数名称和值

说明

示例

ParamValue = get_param(Object,Parameter) 返回指定模型或模块对象的指定参数的名称或值。首先打开或加载 Simulink® 模型。

提示

如果您对同一个模块多次调用 get_param,则使用数值句柄指定模块比使用完整的模块路径更高效。使用 getSimulinkBlockHandle 获取模块句柄。

对于参数名称,请参阅:

示例

全部折叠

加载 vdp 模型。

load_system('vdp');

获取 Expression 模块参数的值。

BlockParameterValue = get_param('vdp/Fcn','Expression')
BlockParameterValue =
    1 - u*u

获取 SolverType 模型参数的值。

SolverType = get_param('vdp','SolverType')
SolverType =
   Variable-step

通过找出 Simulink 根参数名称与模型参数名称之间的区别,获取全局参数名称的列表。

RootParameterNames = fieldnames(get_param(0,'ObjectParameters'));
load_system('vdp')
ModelParameterNames = fieldnames(get_param('vdp','ObjectParameters'));
GlobalParameterNames = setdiff(RootParameterNames,ModelParameterNames)
GlobalParameterNames =
          'AutoSaveOptions'
          'CacheFolder'
          'CallbackTracing'
          'CharacterEncoding'
                 . . .
          'CurrentSystem'

获取全局参数的值。

GlobalParameterValue = get_param(0,'CurrentSystem')
GlobalParameterValue =
          vdp

获取 vdp 模型的模型参数列表。

load_system('vdp')
ModelParameterNames = get_param('vdp','ObjectParameters')
ModelParameterNames =
              Name: [1x1 struct]
               Tag: [1x1 struct]
       Description: [1x1 struct]
              Type: [1x1 struct]
            Parent: [1x1 struct]
            Handle: [1x1 struct]
                       . . .
           Version: [1x1 struct]

获取 vdp 模型的 ModelVersion 模型参数的当前值。

ModelParameterValue = get_param('vdp','ModelVersion')
ModelParameterValue =
          1.6

获取 vdp 模型的模块路径和名称列表。

load_system('vdp')
BlockPaths = find_system('vdp','Type','Block')
BlockPaths = 
    'vdp/Fcn'
    'vdp/More Info'
    'vdp/More Info/Model Info'
    'vdp/Mu'
    'vdp/Mux'
    'vdp/Product'
    'vdp/Scope'
    'vdp/Sum'
    'vdp/x1'
    'vdp/x2'
    'vdp/Out1'
    'vdp/Out2'

获取 Fcn 模块的模块对话框参数列表。

BlockDialogParameters = get_param('vdp/Fcn','DialogParameters')
BlockDialogParameters = 
                Expr: [1x1 struct]
          SampleTime: [1x1 struct]

获取 Expr 模块参数的值。

BlockParameterValue = get_param('vdp/Fcn','Expr')
BlockParameterValue =
    1 - u*u

如果您对同一个模块多次调用 get_param,则使用模块句柄比以字符向量形式指定完整模块路径(例如,'vdp/Fcn')更高效。

您可以在对 get_paramset_param 的后续调用中使用该模块句柄。如果您检查该句柄,会发现它包含双精度值。不要试图只使用句柄的数值(例如 5.007),因为您通常需要指定的位数远远超过 MATLAB® 显示的位数。而要将该句柄赋给变量,并使用该变量名称指定模块。

如果需要,可以使用 getSimulinkBlockHandle 来加载 vdp 模型(通过指定 true),并获取 FCN 模块的句柄。

fcnblockhandle = getSimulinkBlockHandle('vdp/Fcn',true);

将模块句柄用于 get_param 以获取 Expr 模块参数的值。

BlockParameterValue = get_param(fcnblockhandle,'Expression')
BlockParameterValue =
    1 - u*u

获取 vdp 模型的模块路径和名称列表。

load_system('vdp')
BlockPaths = find_system('vdp','Type','Block')
BlockPaths = 
    'vdp/Fcn'
    'vdp/More Info'
    'vdp/More Info/Model Info'
    'vdp/Mu'
    'vdp/Mux'
    'vdp/Product'
    'vdp/Scope'
    'vdp/Sum'
    'vdp/x1'
    'vdp/x2'
    'vdp/Out1'
    'vdp/Out2'

获取 vdp 模型中每个模块的 BlockType 参数值。

BlockTypes = get_param(BlockPaths,'BlockType')
BlockTypes = 
    'Fcn'
    'SubSystem'
    'SubSystem'
    'Gain'
    'Mux'
    'Product'
    'Scope'
    'Sum'
    'Integrator'
    'Integrator'
    'Outport'
    'Outport'

输入参数

全部折叠

模型、模块或根的句柄或名称,指定为数值句柄或字符向量;对于多个模块,则为字符向量元胞数组;对于根,则为 0。数值句柄必须为标量。您还可以获取信号线和端口的参数,但必须使用数值句柄指定它们。

提示

如果您对同一个模块多次调用 get_param,则使用数值句柄指定模块比使用完整的模块路径更高效。使用 getSimulinkBlockHandle 获取模块句柄。不要试图只使用句柄的数值(例如 5.007),因为您通常需要指定的位数远远超过 MATLAB 显示的位数。要将句柄赋给变量,并使用该变量名称指定模块。

指定 0 以获取根参数名称,包括当前 Simulink 会话的全局参数和模型参数。

  • 全局参数包括编辑器预设和 Simulink Coder™ 参数。

  • 模型参数包括配置参数、Simulink Coder 参数和 Simulink Code Inspector™ 参数。

示例: 'vdp/Fcn'

模型、模块或根的参数,指定为字符向量,对于根,则为 0。下表显示了特殊情况。

指定的参数结果
'ObjectParameters'

返回一个结构体数组,指定的对象(模型、模块或根)的参数名称在结构体中为单独的字段。

'DialogParameters'

返回一个结构体数组,模块对话框参数名称在结构体中为单独的字段。如果模块有封装,则函数返回封装参数。

参数名称,例如 'BlockType'。指定任何模型或模块参数,或模块对话框参数。

返回指定的模型或模块参数的值。

如果以元胞数组形式指定了多个模块,将返回一个元胞数组,其中包含所有模块都共有的指定参数的值。该元胞数组中所有指定的模块都必须包含该参数,否则函数将返回错误。

示例: 'ObjectParameters'

数据类型: char

输出参数

全部折叠

指定的模型、模块或根的指定参数的名称或值。如果您指定多个对象,则输出是对象元胞数组。下表显示了特殊情况。

指定的参数返回的参数值
'ObjectParameters'

一个结构体数组,指定的对象(模型、模块或根)的参数名称在结构体中为单独的字段。

'DialogParameters'

一个结构体数组,模块对话框参数名称在结构体中显示为单独的字段。如果模块有封装,则函数返回封装参数。

参数名称,例如 'BlockType'

指定的模型或模块参数的值。如果以元胞数组形式指定了多个模块,将返回一个元胞数组,其中包含对所有模块都通用的指定参数的值。

如果您通过指定 get_param(0,'ObjectParameters') 来获取根参数,则输出 ParamValue 是一个结构体数组,根参数名称在结构体中为单独的字段。每个参数字段都是一个结构体,其中包含以下字段:

  • 类型 - 参数类型值包括:'boolean''string''int''real''point''rectangle''matrix''enum''ports''list'

  • 枚举 - 枚举字符向量值的元胞数组,仅适用于 'enum' 参数类型

  • 属性 - 定义参数属性的字符向量元胞数组。值包括:'read-write''read-only''read-only-if-compiled''write-only''dont-eval' 'always-save''never-save''nondirty''simulation'

在 R2006a 之前推出