Simulink&掩码:动态访问参数“评估”和“可调”

时间:2017-07-05 16:42:04

标签: matlab simulink

首先,matlab版本是2011b,所以我不能使用Simulink.MaskParameters类。

我有一个simulink掩码和一些参数。我需要在我的函数中为每个参数确定它是“可评估的”还是“可调的”。

这两件事是掩码参数对话框中的两个复选框,您可以为任何参数选择。

对于“可调”,有MaskTunableValues属性。对于“启用”,有“MaskEnables”属性。

您是否知道是否有办法以编程方式访问同一属性但是“评估”? 感谢

3 个答案:

答案 0 :(得分:3)

@Phil Goddard的回答显示了如何找到参数。要完成答案,实际参数是MaskVariables。 Evaluate标志嵌入到MaskVariables字符串中。修改它并不简单。例如,两个参数MaskVariables字符串包含如下内容:

"a=@1;b=&2;"

在此字符串中,@符号表示评估。在此基础上,评估参数a,而不参数b。如果要更改evaluate标志,则需要为MaskVariables参数设置此字符串,除了@&符号外,它的确切方式。

有关更多信息,请参阅https://www.mathworks.com/help/releases/R2011b/toolbox/simulink/slref/f23-18517.html处的掩码参数的R2011b文档。在页面底部有关于MaskVariables参数的更多细节。

答案 1 :(得分:2)

对于大多数人来说,您使用的版本太旧而无法为您提供准确的解决方案,但是,我确信(从内存中)此参数可用。

如果单击掩码选择块,则转到MATLAB命令行并键入

get_param(gcb,'ObjectParameters')

您将获得所有块属性的列表。 (您可能已经知道,因为您已了解MaskTunableValuesMaskEnables。)该列表底部附近是与掩码相关的所有属性。

现在手动查看每个/所有属性,例如

get_param(gcb,'MaskTunableValues')

并且您会发现其中一个是包含您正在寻找的信息的结构。 (您可能需要深入了解结构以找到具体信息。)

答案 2 :(得分:1)

答案版本> 2011b(2014b测试):

好的发现了,实际上matlab文档对Simulink.MaskParameter类非常不清楚,以下是它的工作原理:

首先,从你的块中获取Mask类:

mask = Simulink.Mask.get(gcb)

Mask类是一个包含所有掩码参数的结构:

parameters = mask.Parameters(:)

参数是一个(数组)Simulink.MaskParameter对象,它将包含所有必需的属性,包括Evaluate。