【问题标题】:Simulink: How does one assign a double to a constant in a subsystem through the mask?Simulink:如何通过掩码将双精度分配给子系统中的常量?
【发布时间】:2014-01-29 01:40:57
【问题描述】:

这是一个有点冗长的问题,但应该很容易理解。

最终目标:通过将“double”向量分配给常量,将其输入到 C++ S 函数中。

起点:我的屏蔽子系统的对话框回调中的一个函数返回我需要的双向量。

中间的步骤:所以我有一个双向量作为输入,我需要一个双向量作为输出,但是我不能直接传递向量,因为set_param 要求我通过字符串形式的值。

问题:我尝试的是这样的:set_param(gcb,'refNameArray',num2str(refName));

在哪里,

  • gcb(正确)返回我正在执行的块 一切。
  • refNameArray 是需要赋值的参数 双向量
  • refName 是向量,采用“双”形式,我 在掩码的对话框回调中可用。

我使用 num2str 因为我不能直接分配一个向量,我必须将它作为一个字符串输入。 但是,即使使用 num2str,我也会收到错误消息 Invalid Setting in Block <blockName> for parameter 'Value'

有什么建议吗?

【问题讨论】:

    标签: matlab simulink


    【解决方案1】:

    您在对话框中为 param 设置的值在语法上应该类似于 MATLAB 中的 RHS 表达式。例如,对于向量值,您需要将其设置为“[1 3 4]”。注意方括号。 num2str 不添加方括号。您可以在调用 set_param 之前在末尾手动添加它,也可以使用 mat2str 来创建带括号的字符串。

    【讨论】:

    • 太棒了!我认为 Simulink 用户社区已经死了,被埋没了。感谢您从我的脑海中消除这种想法!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2018-08-07
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    相关资源
    最近更新 更多