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

set_param

设置系统和模块参数值

说明

示例

set_param(Object,ParameterName,Value,...ParameterNameN,ValueN) 将指定模型或模块对象上的参数设置为指定的值。

在同一个模型或模块上设置多个形参时,使用一个 set_param 命令和多个 ParameterName-Value 实参对组,而不是使用多个 set_param 命令。这种方法非常高效,因为使用一个调用只需计算一次参数。如果任何参数名称或值无效,则函数不会设置任何参数。

提示:

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

  • 如果您使用 matlab -nodisplay 启动会话,则不能使用 set_param 运行仿真。-nodisplay 模式不支持使用 set_param 进行仿真。请改用 sim 命令。

  • 在 MATLAB® 工作区中设置参数后,要查看模型中的变化,请更新图形。

    set_param(model,'SimulationCommand','Update')

对于参数名称,请参阅:

示例

全部折叠

打开 vdp 并设置 SolverStopTime 参数。

vdp
set_param('vdp','Solver','ode15s','StopTime','3000')

打开一个模型,并设置 SolverStopTime 参数。使用 bdroot 获取当前顶层模型。

vdp
set_param(bdroot,'Solver','ode15s','StopTime','3000')

打开 vdp,并在 Mu 模块中设置 Gain 参数值。

vdp
set_param('vdp/Mu','Gain','10')

打开 vdp 并设置 Fcn 模块的位置。

vdp
set_param('vdp/Fcn','Position',[50 100 110 120])

设置 Fcn 模块在 vdp 模型中的位置。

如果需要,可以使用 getSimulinkBlockHandle 来加载 vdp 模型(通过指定 true),并获取 Fcn 模块的句柄。如果您对同一个模块多次调用 set_param,则使用模块句柄比以字符向量形式指定完整模块路径更高效。

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

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

将模块句柄与 set_param 一起使用来设置位置。

set_param(fcnblockhandle,'Position',[50 100 110 120])

将 Mu 模块名称的位置设置在 vdp 模型中的顶部。

打开 vdp 模型。在命令行中键入 vdp

选择 Mu 模块。

将模块的名称设置在顶部。

set_param(gcb,'NameLocation','top')

输入参数

全部折叠

模型或模块的名称或句柄,指定为数值句柄或字符向量。数值句柄必须为标量。您还可以设置信号线和端口的参数,但必须使用数值句柄指定它们。

提示

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

示例: 'vdp/Fcn'

模型或模块参数名称,指定为字符向量或字符串标量。一些参数名称区分大小写。

示例: 'Solver'

示例: 'SimulationCommand'

示例: 'Position'

示例: 'NameLocation'

模型或模块参数值,指定为参数类型决定的格式。一些参数值区分大小写。值通常是字符向量,但也可以是数值、数组和其他类型。许多模块参数值指定为字符向量,但有两个参数例外:Position,指定为向量;UserData,可以是任意数据类型。

示例: 'right''left''top''bottom'

在 R2006a 之前推出