Пакет: matlab.io
Загрузите и сохраните части переменных в MAT-файлах
Функция matfile создает объект matlab.io.MatFile, который соответствует MAT-файлу, такой как
matObj = matfile('myFile.mat')Переменные доступа в MAT-файле как свойства matObj, с записью через точку, подобной доступу к полям структур. Синтаксис для загрузки и сохранения части переменного varName в MAT-файле, соответствующем matObj:
loadedData = matObj.varName(indices); % Load into workspace matObj.varName(indices) = dataToSave; % Save to file
При индексации задайте индексы для всех размерностей. Индексы могут быть единственным значением, равномерно распределенной областью значений увеличения значений или двоеточия (:), такой как
matObj.varName(100:500, 200:600) matObj.varName(:, 501:1000) matObj.varName(1:2:1000, 80)
Используя ключевое слово end, когда часть индекса заставляет MATLAB® загружать целую переменную в память. Для очень больших переменных эта операция загрузки приводит к Out of ошибки Memory. Вместо того, чтобы использовать end, определите степень переменной с методом size, таким как:
sizeMyVar = size(matObj,'myVar')
matfile не поддерживает линейную индексацию. Необходимо задать индексы для всех размерностей.
matfile не поддерживает индексацию в:
Ячейки массивов ячеек
Поля структур
Пользовательские классы
Разреженные массивы
Вы не можете присвоить комплексные значения индексируемому фрагменту действительного массива.
Вы не можете оценить указатели на функцию с помощью объекта MatFile. Например, если ваш MAT-файл содержит указатель на функцию myfunc, синтаксис matObj.myfunc() пытается индексировать в указатель на функцию и не вызывает функцию.
создает объект matObj = matfile(filename) matlab.io.MatFile, который может загрузить или сохранить части переменных в MAT-файле filename. MATLAB не загружает данных из файла в память при создании объекта.
включает или отключает доступ для записи к файлу для объекта matObj = matfile(filename,'Writable',isWritable) matObj. Возможными значениями для isWritable является логический true (1) или false (0).
|
Вектор символа, который задает имя MAT-файла.
Если файл не существует,
| ||||
|
Параметр, чтобы использовать с аргументом | ||||
|
Логическое значение, которое задает, позволить ли сохранять в файл. Возможные значения:
Значение по умолчанию: |
|
Вектор символа, который содержит полностью определенный путь к файлу. Только для чтения. | ||||
|
Логическое значение, которое задает, позволить ли сохранять в файл. Возможные значения:
Значение по умолчанию: |
| размер | ArrayDimensions |
| кто | Имена переменных в MAT-файле |
| кто | Имена, размеры и типы переменных в MAT-файле |
Вы не можете получить доступ к справке для этих методов с помощью команды help. Найдите справку на методах из командной строки с помощью команды doc, таких как doc matlab.io.MatFile/size.
Указатель. Чтобы узнать, как классы Handle влияют на операции копирования, см. раздел "Копирование объектов".
Создайте myFile.mat во временной папке и сохраните данные к части переменного savedVar:
filename = fullfile(tempdir,'myFile.mat'); matObj = matfile(filename); matObj.savedVar(81:100,81:100) = magic(20);
Загрузите часть данных в переменный loadVar:
loadVar = matObj.savedVar(85:94,85:94);
Загрузите или сохраните целую переменную путем исключения индексов. Например, загрузите переменный topo от topography.mat:
filename = 'topography.mat'; matObj = matfile(filename); topo = matObj.topo;
Определите размерности переменной и обработайте одну часть переменной за один раз. В этом случае вычислите и сохраните среднее число каждого столбца переменного stocks в файле в качестве примера stocks.mat:
filename = 'stocks.mat';
matObj = matfile(filename);
[nrows, ncols] = size(matObj,'stocks');
avgs = zeros(1,ncols);
for idx = 1:ncols
avgs(idx) = mean(matObj.stocks(:,idx));
endПо умолчанию matfile только поддерживает данные загрузки из существующих файлов. Чтобы позволить сохранить, установите Writable на true любой во время конструкции объекта,
filename = 'myFile.mat'; matObj = matfile(filename,'Writable',true);
или на отдельном шаге, установкой Properties.Writable:
filename = 'myFile.mat'; matObj = matfile(filename); matObj.Properties.Writable = true;
загрузка | сохранение | размер | whos