2013-07-08 1 views
6

У меня есть большой файл .mat, который я хочу обработать, но он слишком большой, чтобы вписаться в одну нагрузку. Я решил загрузить его по частям, каждый раз, чтобы получить доступ к важным параметрам. Поэтому у меня есть практически два вопроса:Как загрузить часть файла .mat, которая слишком велика для моей машины?

  1. Как я могу получить доступ к именам переменных файла мата без его загрузки?
  2. Как загрузить только один из них в рабочее пространство?

Спасибо!

ответ

7

вы можете увидеть список переменных с помощью:

vars = whos('-file','name.mat'); 

, а затем просто загрузить переменную, которую вы хотите, скажем, первый в списке, по:

load('name.mat', vars(1).name) 
6

А также загрузка отдельные переменные из файла .mat, предложенные @natan, в последних версиях MATLAB вы можете использовать объект matfile для загрузки только частей отдельной переменной.

Так, например, вы можете сказать:

myFile = matfile('path\to\the\mat\file'); 
loadedData = myfile.myVarName(100:200, 500:600); 

и вы будете загружать в только часть переменной myVarName из файла myFile.


Edit:.

Объект matfile также имеет методы size, who и whos, так что вы можете определить имена и размеры переменных, что файл содержит, прежде чем пытаться загрузить биты в

+0

Я не сталкивался с этим, это действительно хорошо знать. –

+4

следует отметить, что 'matfile' поддерживает только MAT-файл v7.3 (на основе HDF5) для частичной загрузки, в противном случае он возвращается к загрузке всей переменной. – Amro

+0

+1 приятно знать ... – bla