Доступ и изменение переменной непосредственно в MAT-файлах, без загрузки в память
m = matfile(filename)
m = matfile(filename,'Writable',isWritable)
создает объект MAT-файла, m
= matfile(filename
)m
, соединенный с MAT-файлом под названием filename
. Объект позволяет вам получать доступ и заменять переменные непосредственно в MAT-файле, не имея необходимость загружать переменные в память.
Частичная загрузка и сохранение, которое обеспечивает функция matfile
, требуют меньшей памяти, чем load
и команды save
, которые всегда работают с целыми переменными.
включает или отключает доступ для записи к файлу.m
= matfile(filename
,'Writable',isWritable
)
matfile
не поддерживает линейную индексацию. Необходимо задать индексы для всех размерностей.
matfile
не поддерживает индексацию в:
Переменные таблиц
Ячейки массивов ячеек
Поля массивов структур
Пользовательские классы
Разреженные массивы
Вы не можете присвоить комплексные числа индексируемому фрагменту действительного массива.
Вы не можете оценить указатели на функцию с помощью 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
, определите степень переменной, myVar
, с методом size
, таким как:
sizeMyVar = size(m,'myVar')