Main Content

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

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

提示

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

基本文件格式

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

A CSV file with one time column and three signals

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

多个时间向量

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

A CSV file with two time columns and three signals

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

信号元数据

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

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

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

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

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

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

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

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

A CSV file with two time columns, three signals, and metadata

从 CSV 文件导入数据

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

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

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

The Import dialog box

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

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

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

另请参阅

函数

相关主题