См. раздел 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 может быть одним из следующих:
Если класс перечисления является производным от встроенного класса, класс массива совпадает со встроенным классом. Значения в массиве являются базовыми значениями каждого элемента перечисления.
В противном случае a struct массив, представляющий пары имя свойства - значения свойства каждого элемента перечисления. Для простых перечислений на основе дескрипторов struct массив не имеет полей.
ValueIndices - a uint32 массив того же размера, что и исходное перечисление. Каждый элемент является индексом в ValueNames и Values массивы. Содержание ValueIndices представляет значение каждого объекта в исходном массиве перечисления.