Simulink.SimulationData.DatasetRef class

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

Создание Simulink.SimulationData.DatasetRef объект

Описание

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

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

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

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

Конструкция

DSRefObj = 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

The get метод является псевдонимом для getElement способ.

Примечание

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

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

getAsDatastore

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

getDatasetVariableNames

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

plot

Постройте график данных в Данные моделирования Inspector

Совет

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

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

Можно копировать DatasetRef свойства объекта по значению. Однако копирование DatasetRef объект создает объект указатель. Копирование DatasetRef объект не копирует данные в MAT-файле, на который ссылается объект. Для получения дополнительной информации об операциях копирования см. раздел «Копирование объектов» в документации 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.

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

Введенный в R2016a
Для просмотра документации необходимо авторизоваться на сайте