Доступ и изменение переменных в MAT-файле без загрузки файла в память
Объект MAT-файла используется для доступа и изменения переменных в MAT-файле без загрузки файла в память. Можно загрузить или сохранить части переменных. Частичная загрузка и сохранение переменных с использованием объекта MAT-файла требует меньше памяти, чем load и save команды.
создает matObj = matfile(filename)matlab.io.MatFile объект, подключенный к MAT-файлу, указанному filename.
Объект MAT-файла позволяет обращаться к переменным и изменять их непосредственно в MAT-файле без необходимости загрузки переменных в память.
включает или отключает доступ к файлу для записи. Определить matObj = matfile(filename,'Writable',isWritable)isWritable как true или false.
size | Получение размеров массива переменной в MAT-файле
Примечание: Не звонить |
who | Получение списка переменных в MAT-файле
|
whos | Получение списка переменных в MAT-файле с размерами и типами
|
При доступе к частям переменных в MAT-файлах путем индексирования:
Линейная индексация не поддерживается. Необходимо указать индексы для всех измерений.
Назначение комплексных значений индексированным частям реального массива не поддерживается.
Для разреженных массивов в MAT-файле объект MAT-файла:
Поддерживает чтение подмножества разреженного массива посредством индексирования.
Не поддерживает запись (назначение значений) в подмножество разреженного массива посредством индексирования.
Объект MAT-файла не поддерживает индексирование в:
Переменные таблиц
Ячейки массивов ячеек
Массивы строк
Поля структурных массивов
Определяемые пользователем классы
Объект MAT-файла не поддерживает оценку дескрипторов функций с помощью m выход. Например, если MAT-файл содержит дескриптор функции myfunc, синтаксис m.myfunc() пытается выполнить индексацию в дескриптор функции и не вызывает функцию.
При сохранении объекта-дескриптора MATLAB сохраняет копию объекта, а не копию дескриптора. Поэтому изменение объекта с помощью его дескриптора в рабочей области, из которой был сохранен объект, не приводит к изменению сохраненного объекта-дескриптора.
Для эффективной частичной загрузки и сохранения требуются MAT-файлы версии 7.3. Чтобы создать MAT-файл версии 7.3, вызовите save функции с помощью '-v7.3' вариант. Например, для преобразования существующего MAT-файла с именем durer.mat в версию 7.3, вызовите:
load('durer.mat'); save('mycopy_durer.mat','-v7.3');
Использование end ключевое слово как часть индекса заставляет MATLAB загружать всю переменную в память. Для очень больших переменных эта операция загрузки приводит к Out
of
Memory ошибки. Вместо использования end, определите степень переменной с помощью size способ:
sizeMyVar = size(matObj,'myVar')