Доступ и заменяет переменные в 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()
попытки индексировать в указатель на функцию, и не вызывают функцию.
Эффективная частичная загрузка и сохранение требуют 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')