【问题标题】:How to import a vector from workspace to Simulink in Matlab?如何将工作空间中的向量导入 Matlab 中的 Simulink?
【发布时间】:2019-04-29 02:18:35
【问题描述】:

我想将大小为 800000*1 的一维数组从工作区导入 simulink。然而,像“Simin”这样的块需要一个二维矩阵作为输入。我应该使用另一个块吗? 使用 simin 块导入向量时出现以下错误:

在“G711decoder/From Workspace”中指定为工作区输入的无效变量。该变量可以是矩阵,也可以是具有包含矩阵数据的元素的 Simulink.SimulationData.Dataset 对象。矩阵数据必须是实数、双精度、具有二维和至少两列。第一列必须包含时间值,其余列必须包含数据值。矩阵值不能是 Inf 或 NaN。

【问题讨论】:

  • 这些只是常数值,还是输入信号(取决于时间)。在最后一种情况下,您还应该包含一个时间向量,以便 simulink 知道在每个时间步取什么值。
  • 我只有一个没有时间值的向量。我需要 simulink 将整个样本导入数组
  • 您可以使用constant 块,并将值设置为您要使用的变量的名称,但是数据会立即全部使用,而使用“从工作区加载”数据是逐个采样的

标签: matlab vector simulink


【解决方案1】:

我不知道你是否仍然对答案感兴趣。 Simulink 需要时间向量,但如果您只想导入如下向量: [2 12 -4 5] 你只需要在乞讨时添加一个 0:

[0 2 12 -4 5]

就像说你的向量只在时间 0 存在,你从工作空间中提取它使用它,然后再次调用它,你必须更新向量上的时间,换句话说,0 变成 1 然后2 然后是 3 bla bla bla

【讨论】:

    【解决方案2】:

    您可以为此使用常量块。

    首先,我在工作区中创建了一个变量作为 sample_matris (5x5)。

    sample_matris = rand(5,5);
    

    这是在工作区中创建的值。

    然后我使用常量并输入工作区中定义的变量的名称。

    您可以看到我可以使用工作区中定义的值,方法是在 simulink 中使用常量块。如果您需要矩阵的特定索引,可以使用 Simulink 中的选择器块。

    【讨论】:

      猜你喜欢
      • 2016-04-22
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多