Simulink. SimulationData. Класс DatasetRef

Пакет: Simulink. SimulationData
Суперклассы:

Объект Create Simulink.SimulationData.DatasetRef

Описание

Чтобы использовать ссылку для доступа к объекту Simulink.SimulationData.Dataset, хранившему в MAT-файле, создайте объект Simulink.SimulationData.DatasetRef. Можно использовать эту ссылку, чтобы не исчерпывать память, путем получения сигнала данных сигналом, для данных, которые вы регистрируете к персистентному устройству хранения данных. Можно передать потоком объект DatasetRef во входной порт корневого уровня, или можно использовать его, чтобы создать объект SimulationDatastore использовать для потоковой передачи. Для получения дополнительной информации смотрите Загрузку Большие данные для Симуляций.

Для параллельных симуляций, для которых вы задаете массив объектов Simulink.SimulationInput, если вы регистрируете к файлу, Simulink®:

  • Создает объекты Simulink.SimulationData.DatasetRef получить доступ к выходным данным в MAT-файле и включает те объекты в данные объектов SimulationOutput

  • Включает аргумент CaptureErrors для симуляции

Конструкция

datasetRefObj = Simulink.SimulationData.DatasetRef(location,identifier) создает ссылку на содержимое переменной Simulink.SimulationData.Dataset, сохраненной в MAT-файле.

Входные параметры

развернуть все

MAT-файл, содержащий объект Simulink.SimulationData.Dataset сослаться, заданный как вектор символов. Вектор символов является путем к MAT-файлу. Не используйте имя файла от одной локали в различной локали.

Имя переменной Simulink.SimulationData.Dataset в MAT-файле, заданном как вектор символов. Когда вы регистрируете к персистентному устройству хранения данных, Simulink использует имена переменных, заданные для каждого вида журналирования.

Предположим, что вы используете имя переменной по умолчанию для сигнала, регистрирующего (logsout) и имя MAT-файла по умолчанию для персистентного устройства хранения данных, регистрирующего (mat.out), После того, как вы моделируете модель, затем чтобы создать ссылку на объект Dataset для журналирования сигнала, в командной строке MATLAB®, введите:

sigLogRef = Simulink.SimulationData.DatasetRef('out.mat','logsout');

Выходные аргументы

развернуть все

Ссылка на журналирование набора данных, возвращенного как объект Simulink.SimulationData.DatasetRef.

Свойства

развернуть все

MAT-файл, содержащий объект Simulink.SimulationData.Dataset сослаться, заданный как вектор символов. Вектор символов является путем к MAT-файлу. Включайте расширение .mat в имя файла. Не используйте имя файла от одной локали в различной локали.

Имя переменной Simulink.SimulationData.Dataset в MAT-файле, заданном как вектор символов. Когда вы регистрируете к персистентному устройству хранения данных, Simulink использует имена переменных, заданные для каждого вида журналирования (например, 'logsout' для данных о регистрации сигнала).

Методы

Используйте numElements, getElement и методы getElementNames для объекта Simulink.SimulationData.DatasetRef тот же способ, которым вы используете те методы для объекта Simulink.SimulationData.Dataset.

Метод

Цель

numElements

Получите число элементов от набора данных

getElementNames

Возвратите имена всех элементов в наборе данных

get

Метод get является псевдонимом для метода getElement.

Примечание

Можно использовать фигурные скобки, чтобы оптимизировать синтаксис индексации, чтобы получить доступ к элементам в ссылке набора данных, вместо того, чтобы использовать методы getElement или get. Чтобы получить элемент с помощью фигурных скобок, индекс должен быть скаляром, который не больше, чем число элементов в переменной. get и поддержка методов getElement, указывающая элемент по наименованию или блок path, а также индексом.

Получите элемент от набора данных

getAsDatastore

Получите представление matlab.io.datastore.SimulationDatastore элемента от объекта DatasetRef

getDatasetVariableNames

Перечислите имена переменных Dataset в MAT-файле

plot

Постройте элементы от набора данных в окне Signal Preview

Совет

Получить имена переменных Dataset в MAT-файле, с помощью процессов функции Simulink.SimulationData.DatasetRef.getDatasetVariableNames быстрее, чем использование функции whos или who.

Копировать семантику

Можно скопировать свойства объектов DatasetRef значением. Однако копирование объекта DatasetRef производит объект указателя. Копирование объекта DatasetRef не копирует данные в MAT-файле что ссылки на объект. Для получения дополнительной информации об операциях копии, смотрите Копирование Объектов (MATLAB) в документации MATLAB.

Примеры

свернуть все

Этот пример показывает, как создать и использовать объекты Simulink.SimulationData.DatasetRef получить доступ к данным для модели, которая регистрирует к персистентному устройству хранения данных. Этот простой пример показывает основные шаги для журналирования к персистентному устройству хранения данных. Этот пример не представляет реалистическую ситуацию для журналирования к персистентному устройству хранения данных, потому что это показывает короткую симуляцию с небольшими требованиями к памяти.

Откройте vdp модель.

В Configuration Parameters> панель Data Import/Export, выберите эти параметры:

  • States

  • Log Dataset data to file

Установите параметр Format на Dataset.

Оставьте другие установки параметров, как они и нажимают Apply.

В модели кликните по сигналу и от строки меню, выберите Enable Data Logging.

Моделируйте модель.

Получите список имен переменных Dataset в файле out.mat.

varNames = Simulink.SimulationData.DatasetRef.getDatasetVariableNames('out.mat')
varNames = 

  1x2 cell array

  'logsout'   'xout'

Создайте ссылку на регистрируемые данные о состояниях, которые хранятся в out.mat. Переменной для регистрируемых данных о состояниях является xout.

statesLogRef = Simulink.SimulationData.DatasetRef('out.mat','xout')
statesLogRef = 

  Simulink.SimulationData.DatasetRef
  Characteristics:
          Location: out.mat (/my_files/out.mat)
        Identifier: xout

  Resolved Dataset: 'xout' with 2 elements

       Name  BlockPath 
       ____  _________ 
    1  ''    vdp/x1   
    2  ''    vdp/x2   

Создайте ссылку на данные о регистрации сигнала, которые хранятся в out.mat. Переменной для данных о регистрации сигнала является logsout.

sigLogRef = Simulink.SimulationData.DatasetRef('out.mat.','logsout')
sigLogRef = 

  Simulink.SimulationData.DatasetRef
  Characteristics:
          Location: out.mat (/my_files/out.mat)
        Identifier: logsout

  Resolved Dataset: 'logsout' with 1 element

       Name  BlockPath 
       ____  _________ 
    1  x1    vdp/x1   

Используйте numElements, чтобы получить доступ к числу элементов в регистрируемом наборе данных состояний.

statesLogRef.numElements
ans =

     2

Используйте DatasetRef, чтобы получить доступ к первому элементу сигнала, регистрирующего набор данных.

sigLogRef{1}
ans = 

  Simulink.SimulationData.Signal
  Package: Simulink.SimulationData

  Properties:
              Name: 'x1'
    PropagatedName: ''
         BlockPath: [1x1 Simulink.SimulationData.BlockPath]
          PortType: 'outport'
         PortIndex: 1
            Values: [1x1 timeseries]


  Methods, Superclasses

Удалите персистентный MAT-файл устройства хранения данных и попытку использовать один из объектов DatasetRef.

delete('out.mat');
statesLogRef.get(1)
File does not exist.

statesLogRef все еще существует, но это - ссылка на объект Dataset, который находится в файле, который больше не существует.

Введенный в R2016a