Смотрите save
и load
функции и Сохраняют и Процесс Загрузки для Объектов для получения общей информации о сохранении и загружаемых объектах.
Чтобы видеть список имен перечисления, заданных классом, используйте enumeration
функция.
Когда вы сохраняете перечисления, которые выводят из встроенных классов или которые являются основанными на значении классами со свойствами, MATLAB® сохраняет имена членов перечисления и определение каждого члена.
При загрузке этих перечислений MATLAB сохраняет имена по базовым значениям. Если сохраненное именованное значение отличается от текущего определения класса, MATLAB использует значение, заданное в текущем классе, и затем выдает предупреждение.
Когда вы сохраняете простые перечисления, которые не имеют никаких свойств, суперклассов или значений, сопоставленных с именами элемента или перечислениями, выведенными из handle
класс, MATLAB сохраняет имена и любые базовые значения.
При загрузке этих типов перечислений MATLAB не проверяет значения, сопоставленные с именами в текущем определении класса. Это поведение следует из того, что простые перечисления не имеют никаких базовых значений, и основанные на указателе перечисления могут по закону иметь значения, которые отличаются, чем те значения, заданные классом.
struct
Вместо объектаЕсли вы добавляете новое именованное значение или новое свойство к классу после сохранения перечисления, MATLAB не предупреждает во время загрузки.
Если изменения в определении класса перечисления не препятствуют тому, чтобы MATLAB загрузил объект (то есть, все именованные значения в MAT-файле присутствуют в определении модифицированного класса), то MATLAB выдает предупреждение, что класс изменил и загружает перечисление.
В следующих случаях MATLAB выдает предупреждение и загружает как можно больше сохраненных данных как struct
:
MATLAB не может найти определение класса
Класс больше не является классом перечисления
MATLAB не может инициализировать класс
Существует один или несколько членов перечисления в загруженном перечислении, которое не находится в определении класса
Если класс является основанным на значении перечислением со свойствами и свойством, которое существует в файле, не присутствует в определении класса
struct
Поля Возвращенный struct
имеет эти поля:
ValueNames
— Массив ячеек строк, один на уникальное значение в массиве перечисления.
Values
— Массив той же размерности как ValueNames
содержание соответствующих значений членов перечисления называют в ValueNames
. В зависимости от вида класса перечисления, Values
может быть одно из следующего:
Если класс перечисления выводит из встроенного класса, класс массивов совпадает со встроенным классом. Значения в массиве являются базовыми значениями каждого члена перечисления.
В противном случае, struct
массив, представляющий имя свойства — пары значений свойств каждого члена перечисления. Для простых и основанных на указателе перечислений, struct
массив не имеет никаких полей.
ValueIndices
— uint32
массив одного размера с исходным перечислением. Каждым элементом является индекс в ValueNames
и Values
массивы. Содержимое ValueIndices
представляет значение каждого объекта в исходном массиве перечисления.