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