【问题标题】:Dymola can't load MAT-fileDymola 无法加载 MAT 文件
【发布时间】:2021-07-25 23:33:28
【问题描述】:

我正在尝试加载由 matlab 输出的 .mat 文件,但它无法显示变量名称。

我已经在 matlab 中检查了与 mat 文件相关的首选项,我确信它符合 dymola 的要求。

我想在 dymola 中使用二维插值函数。但是我的数据存储在matlab中。我尝试以这种方式直接导入但失败了。

然后我尝试了另一种导入方式。

可以看到变量没有显示出来。 但是dymola创建的另一个mat文件是完全正常的。

我猜我的matlab可能有问题,但我不知道该怎么办

这是我的 mat 文件 https://drive.google.com/file/d/1kX_cBIu6cwkG-gDD32WnJvs2Edxzg_j_/view?usp=sharing

【问题讨论】:

  • 很难帮助解决这样的问题。你是如何尝试加载它的?你能提供.mat文件吗?

标签: modelica dymola


【解决方案1】:

查看您的 .mat 文件后,我有几个可以提供帮助的 cmets:

  • 可能最重要的评论是关于 MSL 的 CombiTables 中使用的格式:您需要将轴存储在 2D 表中。这是模型文档的一部分,可以访问,例如通过切换到 Dymola 的“文档”功能区,相应的 CombiTable 在包浏览器中处于活动状态。关于格式的文档的重要部分说:

  • 关于通过 GUI 导入,请注意 Dymola 手册中的段落:

也可以使用 Import… 按钮加载表的数据。数据可以从外部 Matlab 4(.mat 文件)、科学数据格式(.sdf)或逗号分隔值文件导入。逗号分隔值文件可以具有扩展名 .csv 或 .txt。 .txt 格式的文件可以使用制表符、空格、分号或逗号作为分隔符。

因此,您需要将文件保存为 v4 格式,以便通过 GUI 导入。

  • 作为替代方案:您应该在您的计算机上安装“SDF 编辑器”(在 Dymola 的 bin64 文件夹中,以防它不在“开始”菜单中)。该工具将能够读取 mat v7.3 文件,例如通过将其拖放到 UI 中,您将能够使用 CTRL+C 从那里复制突出显示的数据,并使用矩阵编辑器中的“粘贴矩阵”按钮将其粘贴到矩阵编辑器中,如下所示。

  • 您也可以直接在 MSL 的 CombiTables 中使用 .mat 文件。这可以通过像这样配置表来完成:

关于直接从文件中使用数据:通过单击上面显示的“信息”按钮阅读有关如何创建文件的文档是有意义的。对于 Dymola,我认为创建一个 MATLAB v7 文件以从文件中读取表是最有意义的,因为使用您的 v7.3 文件会出现错误。

直接从文件中读取数据的优势在于,对 .mat 文件的更改将对模拟产生直接影响 - 无需重新导入。

我个人会使用“从文件读取”变体,因为它应该是最省力的并且克服了在发生更改时重新导入数据的需要。

【讨论】:

  • 非常感谢,你的方法我试过了。我的 MATLAB 无法在 v4 中保存 .mat 文件。我尝试了我的 matlab 拥有但失败的所有版本。最终我使用 txt 成功导入数据。我怀疑我的 MATLAB2020b 是否有问题。
  • 将“-v4”添加到保存命令应该可以完成这项工作:de.mathworks.com/help/matlab/ref/save.html
猜你喜欢
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 2017-02-22
  • 2018-08-08
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多