使用许多时间步长和信号模拟模型可能会使用和创建太大的数据,无法放入计算机的工作内存。当模拟输入数据不适合内存时,可以选择几种策略之一,将该数据用作根级别的模拟输入输入这些策略用于加载存储在数据集
格式为7.3版MAT文件,包括从另一个模拟记录的数据。
当单个输入信号太大而无法装入内存时,可以使用matlab.io.datastore.SimulationDatastore
对象访问信号数据。从模拟数据存储
对象以适合内存的块增量加载到模拟中。
当模拟输入由万博1manbetxSimulink.SimulationData.Dataset
对象中的文件太大,无法加载到内存中,您可以流式处理该文件的全部内容数据集
使用万博1manbetxSimulink.SimulationData.DatasetRef
对象。
当信号装入内存并存储在一个太大而无法加载到内存中的文件中时,您可以使用万博1manbetxSimulink.SimulationData.DatasetRef
对象。
请注意
当您希望使用一个模拟中记录的数据作为另一个模拟的输入时,您还可以使用matlab.io.datastore.sdidatastore
对象。的斯迪达斯托
对象引用磁盘上Simulation data Inspector存储库中的数据,因此不必将记录的数据保存到文件中。考虑使用斯迪达斯托
对象作为迭代工作流的模拟输入。
所有的大数据加载策略都是针对特殊情况,当你的数据不适合内存,可能需要额外的步骤。这些示例使用完全适合内存的数据来说明加载大数据所需的步骤。当您的模拟输入适合内存时,考虑使用其他加载技术。
模拟数据存储
对象当你输入数据中的单个信号太大而无法放入内存时,你可以创建matlab.io.datastore.SimulationDatastore
对象,并将其流式传输到模型中。创建模拟数据存储
对象对于要流式传输到模型中的信号,首先创建万博1manbetxSimulink.SimulationData.DatasetRef
对象以引用数据集
对象,它包含您感兴趣的信号。例如,创建一个DatasetRef
的模拟中记录的数据SlexAircraft示例
模型。
logsout_DSR=Si万博1manbetxmulink.SimulationData.DatasetRef(“aircraftData.mat”,“logsout”);
您可以创建模拟数据存储
对象的DatasetRef
使用大括号或使用getAsDatastore
方法DatasetRef
对象。在这两种情况下模拟数据存储
对象存在于值
被退回者的财产万博1manbetxSimulink.SimulationData.Signal
对象。
当您知道信号在数据集
对象,则可以在DatasetRef
对象,以创建模拟数据存储
等待你的信号。
alphaRad_ds=logsout_DSR{4}
alphaRad_ds=Si万博1manbetxmulink.SimulationData.Signal包:Simulink.SimulationData属性:名称:'alpha,rad'传播名称:''块路径:[1x1 Simulink.SimulationData.BlockPath]端口类型:'outport'端口索引:4个值:[1x1 matlab.io.datastore.SimulationDatastore]方法,超类
创建模拟数据存储
对象对于使用信号索引、名称或块路径的信号,请使用getAsDatastore
方法。例如,创建模拟数据存储
对象的坚持
信号。
stick_ds = logsout_DSR.getAsDatastore (“棍子”)
stick_ds=Si万博1manbetxmulink.SimulationData.Signal包:Simulink.SimulationData属性:名称:'stick'传播名称:''块路径:[1x1 Simulink.SimulationData.BlockPath]端口类型:'outport'端口索引:1个值:[1x1 matlab.io.datastore.SimulationDatastore]方法,超类
因为值
的属性木棍
和alphaRad_ds
万博1manbetxSimulink.SimulationData.Signal
对象是SimulationDatastores
,将信号数据流传输到您的模型中。您可以包括模拟数据存储
支持信号
对象中的元素数据集
对象中的一项或一项输入
参数以逗号分隔。
数据集
使用一个DatasetRef
对象当您的模拟输入在数据集
如果文件太大而无法加载到内存中,您可以创建万博1manbetxSimulink.SimulationData.DatasetRef
对象将您的模拟输入输入到模型中。当你指定DatasetRef
对象作为“数据导入/导出”窗格上的输入参数数据集
对象,用于创建DatasetRef
流进你的模型。使用其他大数据加载技术之一,从一个数据集
对象。
当您的模拟输入的文件数据集
存储包含其他数据集集合
数据,你可以用万博1manbetxSimulink.SimulationData.DatasetRef.getDatasetVariableNames
命令功能,查看列表数据集
文件中包含的对象。中的变量名预览数据集
对象在文件内容不适合内存时特别有用。
datasetNames = 万博1manbetxSimulink.SimulationData.DatasetRef.getDatasetVariableNames (“aircraftData.mat”)
datasetNames =1 x3单元格{' logsout}{‘xout}{'你'}
创建一个DatasetRef
对象罗格苏特
.
logsout_DSR=Si万博1manbetxmulink.SimulationData.DatasetRef(“aircraftData.mat”,“logsout”);
你可以加载logsout_DSR
使用输入
参数的加载方式与加载万博1manbetxSimulink.SimulationData.Dataset
对象。每个信号数据集
对象,用于创建DatasetRef
以适合内存的块的形式流到模型中。
DatasetRef
对象当模拟输入信号单独装入内存并存储在数据集
对象,如果文件不能装入内存,则使用万博1manbetxSimulink.SimulationData.DatasetRef
对象将每个感兴趣的信号加载到内存中。然后,可以加载信号作为模型的模拟输入。
首先,创建DatasetRef
对象以引用数据集
对象,该对象包含要加载的信号。例如,创建DatasetRef
对象,用于从模拟记录到文件的数据SlexAircraft示例
模型。
logsout_DSR=Si万博1manbetxmulink.SimulationData.DatasetRef(“aircraftData.mat”,“logsout”);
你可以使用得到
或getElement
方法将单个信号加载到内存中DatasetRef
对象。这两个方法都使用相同的语法将指定的元素加载到内存中。属性中的索引可以指定要加载到内存中的信号数据集
对象或其名称。如果您不知道要加载的信号的名称,请使用getElementNames
方法查看中元素的名称数据集
对象引用的DatasetRef
对象。
elNames = logsout_DSR.getElementNames
埃尔纳姆斯=15x1电池{0x0 char} {0x0 char} {'alpha, rad'} {'q, rad/sec'} {0x0 char} {'qGust'} {'wGust'} {0x0 char} {'Stick'} {0x0 char} {0x0 char} {0x0 char} {0x0 char} {' x0 char} {' x0 char} {' x0 char} {' x0 char} {' x0 char} {' x0 char} {' x0 char} {' x0 char} {' x0 char}}
加载Q古斯特
使用它的名字将信号输入内存。
qGust=logsout\u DSR.getElement(“qGust”)
qGust = 万博1manbetxSimulink. simulationdata . signal Package: Simulink. .模拟Data Properties: Name: 'qGust' PropagatedName: '' BlockPath: [1x1 Simulink.SimulationData.BlockPath] PortType: 'outport' PortIndex: 2 Values: [1x1 timeseries] Methods, Superclasses
你可以添加Q古斯特
信号数据集
要加载到模型中根级别输入块的模拟输入信号的对象,也可以指定Q古斯特
作为一项输入
参数以逗号分隔。
matlab.io.datastore.SimulationDatastore
|万博1manbetxSimulink.SimulationData.DatasetRef
|万博1manbetxSimulink.SimulationData.Dataset