Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

将 CSV 文件中的数据导入仿真数据检查器

要将数据从 CSV 文件导入仿真数据检查器,请格式化该 CSV 文件中的数据。然后,您可以使用仿真数据检查器 UI 或 Simulink.sdi.createRun 函数导入数据。

提示

当您要从 CSV 文件导入数据时,如果其中的数据格式与本主题中的设定不同,您可以使用 io.reader 类为仿真数据检查器编写您自己的文件读取器。

基本文件格式

在最简单的格式中,CSV 文件的第一行是标题,列出文件中信号的名称。第一列是时间。时间列的名称必须为 time,并且时间值必须单调递增。信号名称以下的各行列出对应于每个时间步的信号值。

导入操作不支持包含 InfNaN 值的时间数据或包含 Inf 值的信号数据。空值或 NaN 信号值呈现为缺失数据。支持所有内置数据类型。

多个时间向量

当数据包含具有不同时间向量的信号时,文件可以包含多个时间向量。每个时间列必须命名为 time。时间列指定其右边各信号列的采样时间,直到下一个时间向量列为止。例如,第一个时间列定义 signal1signal2 的时间,第二个时间列定义 signal3 的时间步。

信号列必须具有与相关联的时间向量相同的数据点数。

信号元数据

您可以在 CSV 文件中指定信号元数据,以指示信号数据类型、单位、插值方法、模块路径和端口索引。在信号名称和信号数据之间的行中列出每个信号的元数据。根据下表对元数据进行标记。

信号属性标签
数据类型Type:内置数据类型。
单位Unit:

支持的单位。例如,Unit: m/s 指定单位“米/秒”。

有关支持的设备列表,请在 MATLAB® 命令行窗口中输入 showunitslist

插值方法Interp:linearzoh(零阶保持)或 none
模块路径BlockPath:生成信号的模块的路径。
端口索引PortIndex:整数。

您也可以导入数据类型由枚举类定义的信号。请使用 Enum: 标签并将值指定为枚举类的名称,而不是使用 Type: 标签。枚举类的定义必须保存在 MATLAB 路径中。

当导入的文件未指定信号元数据时,仿真数据检查器会采用双精度数据类型和线性插值。您可以将插值方法指定为 linear、zoh(零阶保持)或 none。如果未在文件中指定信号的单位,则可以在导入文件后,在仿真数据检查器中为信号指定单位。

您可以为每个信号指定任意元数据组合。对元数据指定不足的信号,在相应位置保留一个空元胞即可。

从 CSV 文件导入数据

您可以使用仿真数据检查器 UI 或使用 Simulink.sdi.createRun 函数从 CSV 文件导入数据。

要使用 UI 导入数据,请使用 Simulink.sdi.view 函数或 Simulink™ 工具条中的数据检查器按钮打开仿真数据检查器。然后,点击导入按钮。

import.png

在“导入”对话框中,选择从文件导入数据的选项,并在文件系统中导航以选择文件。选择文件后,可用于导入的数据会显示在表中。您可以选择导入哪些信号,以及是将它们导入新运行还是现有运行中。此示例将所有可用信号导入新运行中。选择选项后,点击导入按钮。

import_dialog.png

当您使用 UI 将数据导入新运行时,新运行名称在运行编号后会跟有 Imported_Data

以编程方式导入数据时,您可以指定导入的运行的名称。

csvRunID = Simulink.sdi.createRun('CSV File Run','file','csvExampleData.csv');

另请参阅

函数

相关主题