Simulink.SimulationData.Dataset
访问记录的仿真数据或对仿真输入数据分组
说明
Simulink.SimulationData.Dataset
对象可对相关数据进行分组。记录的仿真结果通常分组到 Dataset
对象中。当您加载初始状态时以及使用 Inport 模块或 Signal Editor 模块加载外部输入数据时,您还可以使用 Dataset
对象对仿真输入数据进行分组。
通过记录仿真数据创建的 Dataset
对象包含一个或多个元素。每个元素都包含记录信号、输出、数据存储或状态的数据。每个元素都是一个对象,该对象的类型取决于它包含的数据。
信号和输出 -
Simulink.SimulationData.Signal
对象状态和最终状态 -
Simulink.SimulationData.State
对象数据存储 -
Simulink.SimulationData.DataStoreMemory
对象
当您创建一个 Dataset
对象以对仿真输入数据进行分组时,每个元素都包含信号、总线或总线数组的数据。您可以添加您使用的加载方法支持的任何格式的数据。
输入类型 | 数据格式 |
---|---|
标量、向量或多维信号 |
|
总线 |
|
总线数组 |
|
函数调用信号 |
|
创建对象
记录仿真数据通常会创建一个 Simulink.SimulationData.Dataset
对象,包括以下记录情况:
使用信号记录来记录数据。
使用数据集格式记录输出、状态或最终状态。
日志数据存储。
使用 Record 模块将数据记录到工作区或 MAT 文件。
使用 Scope 模块以数据集格式记录数据。
使用 Floating Scope 或 Scope Viewer 记录数据。
要将模型的外部输入数据分组到 Dataset
对象中,您可以:
创建一个空的
Dataset
对象并使用addElement
函数添加输入数据。使用
createInputDataset
创建一个Dataset
对象,该对象包含模型中每个根级 Inport 模块或 In Bus Element 模块的元素。然后,指定每个元素的数据。使用信号编辑器以交互方式创建和编辑包含仿真输入数据的
Dataset
对象。有关详细信息,请参阅创建和编辑信号数据。
您还可以通过将使用其他格式的数据转换为使用数据集格式来创建 Dataset
对象。所有数据都采用通用格式可以方便后处理。有关详细信息,请参阅Convert timeseries Object to Dataset Object。
语法
描述
创建一个未命名的空 ds
= Simulink.SimulationData.DatasetDataset
对象,您可以向其中添加元素。使用此语法可手动创建一个包含外部输入数据的 Dataset
对象,以便使用 Inport 或 In Bus Element 模块加载。
创建一个未命名的 ds
= Simulink.SimulationData.Dataset(dataToConvert
)Dataset
对象,该对象包含一个或多个包含数据 dataToConvert
的元素。使用此语法可将使用其他格式的数据转换为使用数据集格式。有关详细信息,请参阅Convert timeseries Object to Dataset Object。
转换过程每次仅转换一个输入的数据。要转换多个变量的数据,请一次转换一个变量,然后使用 concat
函数组合生成的 Dataset
对象。
创建一个名称由 ds
= Simulink.SimulationData.Dataset(dataToConvert
,"DatasetName",dsName
)dsName
指定的 Dataset
对象,该对象包含一个或多个包含数据 dataToConvert
的元素。使用此语法可将使用其他格式的数据转换为使用数据集格式。有关详细信息,请参阅Convert timeseries Object to Dataset Object。
输入参量
输出参量
属性
对象函数
addElement | Add element to end of Simulink.SimulationData.Dataset
object |
concat | 将 Simulink.SimulationData.Dataset 对象串联到另一个 Dataset 对象 |
exportToPreviousRelease | Save a Dataset object to a MAT file you can open in any
release |
extractTimetable | Extract data from Simulink.SimulationData.Dataset or
Simulink.SimulationData.Signal objects into timetables |
find | 从 Simulink.SimulationData.Dataset 对象获取元素或元素集合 |
get | 从 Simulink.SimulationData.Dataset 对象获取元素或元素集合 |
getElementNames | 返回 Simulink.SimulationData.Dataset 对象中所有元素的名称 |
numElements | 获取 Simulink.SimulationData.Dataset 对象中的元素数 |
plot | 在仿真数据检查器中绘制数据 |
removeElement | Remove element from Simulink.SimulationData.Dataset
object |
setElement | Change Simulink.SimulationData.Dataset object element stored at
specified index |
示例
提示
您可以使用花括号 (
{}
) 按索引访问、添加或修改Dataset
对象中的元素。要按名称访问、添加或修改
Dataset
对象的元素,请使用getElement
、addElement
和setElement
函数。当您使用
Dataset
对象对仿真输入进行分组时,您可以使用信号编辑器或 Signal Editor 模块轻松更改哪个Dataset
对象为仿真提供输入。当您使用根级 Inport 模块从
Dataset
对象加载外部输入数据时,您可以使用根输入端口映射器按模块名称、模块路径、信号名称或端口顺序将Dataset
对象中的每个元素都映射到 Inport 模块。您还可以编写自己的函数来映射数据。有关详细信息,请参阅映射根输入信号数据。将
Dataset
对象中的数据保存到 MAT 文件时,如果Dataset
对象的内容太大而无法放入内存,请考虑保存到 7.3 版 MAT 文件。您可以创建Simulink.SimulationData.DatasetRef
以引用 MAT 文件中的Dataset
对象,而无需将数据加载到内存中进行数据处理或加载大数据。有关详细信息,请参阅Load Big Data for Simulations。要将
Dataset
对象保存到可以在早期版本中打开的 MAT 文件,请使用exportToPreviousRelease
函数而不是save
函数。您可以编写自己的读取器,以使用
Simulink.io.FileType
类将文件中的数据导入基础工作区、模型工作区或信号编辑器中的Dataset
对象。有关详细信息,请参阅Create Custom File Type for Import。