Matlab 将对话框变量传递给Simulink掩码初始化中的函数

Matlab 将对话框变量传递给Simulink掩码初始化中的函数,matlab,simulink,Matlab,Simulink,我正在使用遮罩编辑器的初始化窗格创建自修改Simulink块。与直接在初始化窗格的文本编辑器中工作不同,我想调用类似于init_blk(gcb)的东西,并在init_blk.m中编写代码,以便使用断点进行调试。这种方法工作正常,但我发现自己显式地传递了一个不断增加的变量列表。我不想使用init_blk(gcb,param1,param2,param3,…)形式的函数我想要一些类似init_blk(gcb,dialogparameters)的东西。我已经能够使用get_param访问init_bl

我正在使用遮罩编辑器的初始化窗格创建自修改Simulink块。与直接在初始化窗格的文本编辑器中工作不同,我想调用类似于
init_blk(gcb)
的东西,并在
init_blk.m
中编写代码,以便使用断点进行调试。这种方法工作正常,但我发现自己显式地传递了一个不断增加的变量列表。我不想使用
init_blk(gcb,param1,param2,param3,…)形式的函数
我想要一些类似
init_blk(gcb,dialogparameters)
的东西。我已经能够使用
get_param
访问
init_blk()
中的DialogParameters,但这似乎并没有保留数据类型。一切都是一根弦

所以我问题的要点是。我需要在Initialization commands(初始化命令)窗格中输入什么才能将初始化命令的活动工作区传递给函数?或者有更好的方法来处理这个问题吗?

您想使用

get_param(gcb,'MaskWSVariables')

这让我在这方面取得了很大进展,也让我发现了
get_-param(gcb,'MaskNames')
get_-param(gcb,'MaskValues')
。我仍然不太理解的一些行为是字符串与双精度的处理
get_param(gcb,'MaskWSVariables')
返回一个结构,其中
Value
成员为空表示字符串,double表示double。另一方面,
get_param(gcb,'MaskValues')
将所有值作为字符串返回。如果我在初始化窗格文本块中直接使用
class()
,参数将正确标识为字符串或双精度。