0

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

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

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

然后我尝试了另一种导入方式。 另一个步骤 1 另一个步骤 2 另一个步骤 3

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

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

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

4

1 回答 1

2

查看您的 .mat 文件后,我有几条评论可能会有所帮助:

  • 可能最重要的评论是关于 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 文件。这可以通过像这样配置表来完成:

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

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

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

于 2021-05-04T08:13:00.557 回答