exponenta event banner

importEnumTypes

Импорт определений перечисляемых типов в словарь данных

Описание

пример

importedTypes = importEnumTypes(dictionaryObj,targetTypes) импорт в словарь данных dictionaryObj определения одного или нескольких перечисляемых типов targetTypes. importEnumTypes не импортирует переменные MATLAB, созданные с использованием перечисляемых типов, а вместо этого, в поддержку этих переменных, импортирует определения типов. В целевом словаре данных в качестве статьи хранится определение успешно импортированного типа. Этот синтаксис возвращает список имен успешно импортированных типов. importEnumTypes сохраняет изменения, внесенные в целевой словарь, поэтому перед использованием importEnumTypes, убедитесь, что несохраненные изменения приемлемы.

[importedTypes,importFailures] = importEnumTypes(dictionaryObj,targetTypes) дополнительно возвращает список всех целевых типов, которые не были успешно импортированы. Можно проверить список, чтобы определить причину каждого сбоя.

Примеры

свернуть все

Создание словаря данных myNewDictionary.sldd в текущей рабочей папке и Simulink.data.Dictionary объект, представляющий новый словарь данных. Назначение объекта переменной myDictionaryObj.

myDictionaryObj = Simulink.data.dictionary.create('myNewDictionary.sldd');

Запуск сценария в файле MATLAB myDataEnum_ex_API.m. Файл определяет перечисляемый тип с именем InstrumentTypes с использованием Simulink.defineIntEnumType и создает три переменные на основе нового типа. Затем импортируйте новые переменные из базовой рабочей области в myDictionary_ex_API.sldd.

myDataEnum_ex_API
importFromBaseWorkspace(myDictionaryObj,'varList',...
{'firstEnumVariable','secondEnumVariable','thirdEnumVariable'});

Удаление импортированных переменных из базовой рабочей области. Прежде чем импортировать определение перечисляемого типа данных в целевой словарь данных, необходимо очистить базовую рабочую область от любых переменных, созданных с использованием целевого типа.

clear firstEnumVariable
clear secondEnumVariable
clear thirdEnumVariable

Импортировать определение типа данных в myDictionary_ex_API.sldd.

importEnumTypes(myDictionaryObj,{'InstrumentTypes'})
ans = 

       className: 'InstrumentTypes'
    renamedFiles: {}

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

свернуть все

Целевой словарь данных, указанный как Simulink.data.Dictionary объект. Перед использованием этой функции представляйте целевой словарь с помощью Simulink.data.Dictionary с помощью, например, Simulink.data.dictionary.create или Simulink.data.dictionary.open функция.

Импортируемые определения перечисляемых типов, заданные как массив ячеек из символьных векторов или строковый массив. Если какие-либо целевые типы определены с помощью classdef блоки в файлах MATLAB или P-файлах, файлы должны быть доступны на вашем пути MATLAB, чтобы importEnumTypes может отключить их.

Пример: {'myEnumType'}

Пример: {'myFirstEnumType','mySecondEnumType','myThirdEnumType'}

Типы данных: cell

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

свернуть все

Определения перечисляемых типов целевого объекта успешно импортированы, возвращены в виде массива структур. Каждая структура в массиве представляет один импортированный тип. className поле каждой структуры идентифицирует тип по имени и renamedFiles определяет любые переименованные файлы MATLAB или P-файлы.

Определения перечисляемых типов, целевые, но не импортированные, возвращаются в виде массива структур. Каждая структура в массиве представляет один тип, который не импортирован. className поле каждой структуры идентифицирует тип по имени и reason поле объясняет ошибку.

Совет

  • Перед импортом определения перечисляемого типа данных в словарь данных необходимо очистить базовую рабочую область от любых переменных, созданных с использованием целевого типа.

  • Перечисляемый тип можно определить с помощью classdef блок в файле MATLAB или P-файле. importEnumTypes импортирует определения типов непосредственно из этих файлов, если указаны имена типов для импорта с помощью входного аргумента targetTypes и если файлы, определяющие типы, находятся в пути MATLAB.

  • Чтобы избежать конфликтов определений для импортированных типов, importEnumTypes делает файлы MATLAB или P-файлы неэффективными путем добавления .save к их именам. .save расширения заставляют переменные полагаться на определения в целевом словаре данных, а не на определения в файлах. Вы можете удалить .save для восстановления исходного состояния файлов.

  • Вы можете использовать importEnumTypes для импорта перечисляемых типов, определенных с помощью Simulink.defineIntEnumType функция. Поскольку такие типы не определены с использованием файлов MATLAB или P-файлов, importEnumTypes не переименовывает файлы.

  • Используйте функцию Simulink.findVars для создания списка перечисляемых типов, используемых моделью. Затем используйте список с importEnumTypes для импорта определений типов в словарь данных. Дополнительные сведения см. в разделе Перечисления в словаре данных.

Представлен в R2015a