2013-07-08 6 views
6

Ich habe eine große .mat-Datei, die ich verarbeiten möchte, aber es ist zu groß, um in eine einzelne Ladung zu passen. Ich dachte, es in Teilen zu laden, jedes Mal, um nur auf die wichtigen Parameter zuzugreifen. Also habe ich praktisch zwei Fragen:Wie kann ich einen Teil einer .mat-Datei laden, die für meinen Computer zu groß ist?

  1. Wie kann ich auf die Variablennamen der Matte-Datei zugreifen, ohne sie zu laden?
  2. Wie kann ich nur eine davon in den Arbeitsbereich laden?

Vielen Dank!

Antwort

7

können Sie die Liste der Variablen finden Sie unter Verwendung von:

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

und dann laden Sie einfach die Variable, die Sie wollen, sagen die erste auf der Liste von:

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

sowie das Laden einzelne Variablen aus der .mat-Datei, wie von @natan vorgeschlagen, können Sie in neueren Versionen von MATLAB ein Objekt matfile verwenden, um nur Teile einer einzelnen Variablen zu laden.

So zum Beispiel, kann man sagen:

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

und Sie werden nur einen Teil der variablen myVarName aus der Datei myFile laden in.


Edit:.

Das matfile Objekt hat auch Methoden size, who und whos, so dass Sie die Namen und Größen der Variablen bestimmen kann, dass die Datei enthält, bevor Sie versuchen, in Bits zu laden

+0

Ich bin nicht darüber gekommen, das ist wirklich gut zu wissen. –

+4

Es sollte angemerkt werden, dass 'matfile' nur MAT-Datei v7.3 (HDF5-basiert) für das partielle Laden unterstützt, andernfalls greift es auf das Laden der gesamten Variablen zurück. – Amro

+0

+1 gut zu wissen ... – bla