matfile
파일을 메모리로 불러오지 않고 MAT 파일에 있는 변수에 액세스 및 변경
설명
MAT 파일 객체를 사용하면 파일을 메모리로 불러오지 않고 MAT 파일에 있는 변수에 액세스하고 변경할 수 있습니다. 변수의 일부를 불러오거나 저장할 수 있습니다. MAT 파일 객체를 사용하여 변수를 부분적으로 불러오고 저장하면 load
및 save
명령을 사용할 때보다 필요한 메모리가 적습니다.
생성
설명
은 matObj
= matfile(filename
)filename
으로 지정된 MAT 파일에 연결되는 matlab.io.MatFile
객체를 생성합니다.
이 MAT 파일 객체를 사용하면 변수를 메모리로 불러올 필요 없이 MAT 파일에 있는 변수에 직접 액세스하고 변경할 수 있습니다.
은 파일에 대한 쓰기 액세스를 활성화하거나 비활성화합니다. matObj
= matfile(filename
,'Writable',isWritable
)isWritable
을 true
또는 false
로 지정합니다.
입력 인수
속성
객체 함수
size | MAT 파일에 있는 변수의 배열 차원 가져오기
참고: 구문 |
who | MAT 파일에 있는 변수 목록 가져오기
|
whos | 크기와 유형을 포함하여, MAT 파일에 있는 변수의 목록 가져오기
|
예제
제한 사항
인덱싱을 사용하여 MAT 파일에 있는 변수의 일부에 액세스할 경우 다음 사항을 참고하십시오.
선형 인덱싱은 지원되지 않습니다. 따라서 모든 차원에 대해 인덱스를 지정해야 합니다.
실수형 배열의 인덱싱된 부분에 복소수 값을 할당하는 기능은 지원되지 않습니다.
MAT 파일에 있는 희소 배열의 경우 MAT 파일 객체의 특징은 다음과 같습니다.
인덱싱을 사용하여 희소 배열의 일부를 읽을 수 있습니다.
인덱싱을 사용하여 희소 배열의 일부에 쓰는 기능(값 할당)은 지원하지 않습니다.
MAT 파일 객체는 다음에 대한 요소 참조를 지원하지 않습니다.
테이블의 변수
셀형 배열의 셀
string형 배열
datetime
형 배열duration
형 배열구조체형 배열의 필드
사용자 정의 클래스
MAT 파일 객체는
m
출력값을 사용한 함수 핸들 실행을 지원하지 않습니다. 예를 들어, MAT 파일에 함수 핸들myfunc
가 포함된 경우 구문m.myfunc()
는 함수 핸들로의 요소를 참조하려 시도하지만 함수를 불러오지는 않습니다.핸들 객체를 저장하면 MATLAB은 핸들의 복사본이 아니라 객체의 복사본을 저장합니다. 따라서 객체가 저장된 작업 공간에서 핸들을 통해 객체를 수정해도 저장된 핸들 객체는 수정되지 않습니다.
팁
효율적인 부분 불러오기 및 저장을 수행하려면 버전 7.3 MAT 파일이 필요합니다. 버전 7.3 MAT 파일을 만들려면
save
함수를'-v7.3'
옵션과 함께 호출하십시오. 예를 들어, 기존 MAT 파일durer.mat
를 버전 7.3으로 변환하려면 다음을 호출하십시오.load('durer.mat'); save('mycopy_durer.mat','-v7.3');
인덱스의 일부로
end
키워드를 사용하면 MATLAB이 전체 변수를 메모리로 불러오게 됩니다. 매우 큰 변수의 경우, 이 불러오기 작업을 수행하면Out
of
Memory
오류가 발생합니다.end
를 사용하는 대신size
메서드를 사용하여 변수의 크기를 확인하십시오.sizeMyVar = size(matObj,'myVar')
버전 내역
R2011b에 개발됨