2013-07-08 2 views
6

처리하고자하는 큰 .mat 파일이 있지만 단일로드에 적합하지 않은 큰 .mat 파일이 있습니다. 나는 부품으로로드 할 때마다 중요한 매개 변수에 액세스 할 때마다 생각했습니다. 그래서 실질적으로 두 가지 질문이 있습니다 :내 컴퓨터의 메모리가 너무 큰 .mat 파일의 일부를로드하는 방법은 무엇입니까?

  1. 어떻게 매트 파일의 변수 이름을로드하지 않고 액세스 할 수 있습니까?
  2. 어떻게 작업 영역에 하나만로드 할 수 있습니까?

고마워요!

답변

7

사용 변수의 목록을 볼 수 있습니다 :

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

뿐만 아니라로드 :

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

을하고 당신이 원하는 변수를로드는,에 의해, 목록의 첫 번째를 말한다 @natan에서 제안한 .mat 파일의 개별 변수를 사용하는 경우 최신 버전의 MATLAB에서는 matfile 객체를 사용하여 개별 변수의 일부만로드 할 수 있습니다.

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

을 당신은 파일 myFile에서 변수 myVarName의 일부만에로드합니다 :

그래서 예를 들어, 당신은 말할 수있다.


편집 :.

당신은 당신이 비트를로드하기 전에 파일에 포함 된 변수의 이름과 크기를 결정할 수 있도록 matfile 객체가, 방법을 size, whowhos을 가지고

+0

저는이 사실을 알지 못했습니다. 정말 잘 알고 있습니다. –

+4

'matfile '은 부분 적재를 위해 MAT- 파일 v7.3 (HDF5 기반) 만 지원하며, 그렇지 않으면 전체 변수를 적재하는 것으로 돌아갑니다. – Amro

+0

+1 잘 알고 있습니다 ... – bla

관련 문제