我有一个字符串的单元格数组。现在我想在子系统的掩码中显示这些字符串作为文本,而不是在子系统本身的块上。如果您必须在给出字符串之间点击播放按钮以及何时显示它们,也没有问题。 Perhabs回调函数可以使这一步进入最终版本。
单元阵列将不同于子系统。
我拍了一张照片。它在我的Dropbox上。 Picture for a better understanding在实际掩码中,将从自定义类的Object生成单元数组。然后你首先给子系统这个对象提供单元格数组。然后初始化块,然后应在掩码中显示单元格数组的字符串。这是因为这些字符串是子系统中的选项。然后,您可以在面具中的编辑区域中键入您喜欢的选项。 但第二部分不是问题。我的问题是在掩码中的单元格数组中显示文本。
感谢您的帮助。
答案 0 :(得分:3)
这是一个只使用单个字符串的示例,但是对于字符串的单元格数组而言应该相对容易修改。
考虑一个包含屏蔽子系统的简单模型(图像的左上角)。掩码包含一个参数和一个文本控件(如掩码编辑器和掩码本身所示)。
特别重要的是
在Mask Editor的Initialization Pane上,输入以下代码:
% Get the mask object
mo = get_param(gcb,'MaskObject');
% Get the text object
tc = mo.getDialogControl('TextControl');
% Change the string
tc.Prompt = mo.Parameters(1).Value;
再次注意,只有一个参数时才能使用上述功能。如果掩码上有多个控件,那么您需要修改上述内容以从正确的参数中获取正确的字符串(或字符串的单元格数组)。
您还需要在MATLAB命令行中执行以下操作(通过左键单击选择子系统块后)
set_param(gcb,'MaskSelfModifiable','on');
告诉Simulink允许掩码更改块。
完成上述所有操作后,如果在掩码的编辑框中输入字符串,则按Apply(或在任何其他时间进行初始化),然后输入的字符串将出现在掩码的文本区域中。