문서

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

save

작업 공간 변수를 파일에 저장

구문

save(filename)
save(filename,variables)
save(filename,variables,fmt)
save(filename,variables,version)
save(filename,variables,version,'-nocompression')
save(filename,variables,'-append')
save(filename,variables,'-append','-nocompression')
save filename

설명

예제

save(filename)은 현재 작업 공간의 모든 변수를 filename이라는 MATLAB® 형식의 이진 파일(MAT 파일)에 저장합니다. filename이 있으면 save는 이 파일을 덮어씁니다.

예제

save(filename,variables)variables로 지정된, 구조체형 배열의 변수나 필드만 저장합니다.

예제

save(filename,variables,fmt)fmt로 지정된 파일 형식으로 저장합니다. variables 인수는 옵션입니다. variables를 지정하지 않으면 save 함수는 작업 공간에 있는 모든 변수를 저장합니다.

예제

save(filename,variables,version)version에서 지정된 MAT 파일 버전으로 저장합니다. variables 인수는 옵션입니다.

예제

save(filename,variables,version,'-nocompression')은 변수를 압축하지 않고 MAT 파일에 저장합니다. '-nocompression' 플래그는 MAT 파일 버전 7.3만 지원합니다. 따라서 version'-v7.3'으로 지정해야 합니다. variables 인수는 옵션입니다.

예제

save(filename,variables,'-append')는 기존 파일에 새 변수를 추가합니다. MAT 파일에 변수가 이미 있을 경우 save는 이 변수를 작업 공간에 있는 값으로 덮어씁니다.

ASCII 파일의 경우, '-append'는 파일의 끝에 데이터를 추가합니다.

버전 6 MAT 파일에 추가하려면 또한 '-v6'을 입력 인수로 포함시켜야 합니다.

예제

save(filename,variables,'-append','-nocompression')은 새 변수를 압축하지 않고 기존 파일에 추가합니다. 기존 파일은 MAT 파일 버전 7.3이어야 합니다.

예제

save filename은 명령 형식의 구문입니다. 명령 형식에는 특수 문자가 더 적게 필요합니다. 괄호를 입력하거나 입력값을 작은따옴표 또는 큰따옴표로 묶을 필요가 없습니다. 입력값은 쉼표 대신 공백을 사용하여 분리합니다.

예를 들어, test.mat라는 파일을 저장할 경우 다음 명령문은 동일합니다.

save test.mat      % command form
save('test.mat')   % function form

위에 열거된 구문의 입력값 중 어느 것이든 포함시킬 수 있습니다. 예를 들어, 변수 X를 저장할 경우 명령문은 다음과 같습니다.

save test.mat X       % command form
save('test.mat','X')  % function form

filename 등 입력값 중 변수가 하나라도 있는 경우에는 명령 형식을 사용하지 마십시오.

예제

모두 축소

작업 공간의 모든 변수를 이진 MAT 파일 test.mat에 저장합니다. filename이 변수인 경우에는 함수 구문을 사용하십시오.

filename = 'test.mat';
save(filename)

그렇지 않으면 명령 구문을 사용할 수도 있습니다.

save test.mat

작업 공간에서 변수를 제거한 다음, load 함수를 사용하여 데이터를 가져옵니다.

clear
load('test.mat')

두 개의 변수 pq를 만든 다음 pqfile.mat라는 파일에 저장합니다.

p = rand(1,10);
q = ones(10);
save('pqfile.mat','p','q')

MATLAB®은 변수를 현재 폴더의 파일 pqfile.mat에 저장합니다.

명령 구문을 사용하여 변수 pq를 저장할 수도 있습니다.

save pqfile.mat p q

두 개의 변수를 만들고 ASCII 파일에 저장한 다음 파일의 내용을 확인합니다.

p = rand(1,10);
q = ones(10);
save('pqfile.txt','p','q','-ascii')
type('pqfile.txt')

type 함수는 파일의 내용을 표시합니다.

또는, save 작업에 명령 구문을 사용하십시오.

save pqfile.txt p q -ascii

세 개의 필드 a, b, c를 포함하는 구조체 s1을 생성합니다.

s1.a = 12.7;
s1.b = {'abc',[4 5; 6 7]};
s1.c = 'Hello!';

구조체 s1의 필드를 파일 newstruct.mat에 개별 변수로 저장합니다.

save('newstruct.mat','-struct','s1');

whos 함수를 사용하여 파일의 내용을 확인합니다.

disp('Contents of newstruct.mat:')
Contents of newstruct.mat:
whos('-file','newstruct.mat')
  Name      Size            Bytes  Class     Attributes

  a         1x1                 8  double              
  b         1x2               262  cell                
  c         1x6                12  char                

두 개의 변수를 만들고 example.mat라는 버전 7.3 MAT 파일에 저장합니다.

A = rand(5);
B = magic(10);
save('example.mat','A','B','-v7.3')

save 작업에 명령 구문을 사용할 수도 있습니다.

save example.mat A B -v7.3

두 개의 변수를 만들고 압축 없이 myFile.mat라는 버전 7.3 MAT 파일에 저장합니다.

A = rand(5);
B = magic(10);
save('myFile.mat','A','B','-v7.3','-nocompression')

또는, save 작업에 명령 구문을 사용하십시오.

save myFile.mat A B -v7.3 -nocompression

'-nocompression' 플래그는 2GB보다 큰 변수나 압축에 따른 이점이 없는 변수에 대한 저장 속도를 향상시킵니다.

두 개의 변수를 MAT 파일에 저장합니다. 그런 다음, 세 번째 변수를 같은 파일에 추가합니다.

p = rand(1,10);
q = ones(10);
save('test.mat','p','q')

MAT 파일의 내용을 확인합니다.

whos('-file','test.mat')
  Name       Size            Bytes  Class     Attributes

  p          1x10               80  double              
  q         10x10              800  double              

새로운 변수 a를 만든 다음 MAT 파일에 추가합니다.

a = 50;
save('test.mat','a','-append')

MAT 파일의 내용을 확인합니다.

whos('-file','test.mat')
  Name       Size            Bytes  Class     Attributes

  a          1x1                 8  double              
  p          1x10               80  double              
  q         10x10              800  double              

변수 a가 이전 변수 pq를 덮어쓰지 않고 test.mat에 추가됩니다.

참고

버전 6 MAT 파일에 추가하려면 '-v6''-append'를 모두 지정하십시오. 예를 들어, 변수 a를 파일 test.mat에 저장하려면 다음을 호출하십시오.

save('test.mat','a','-v6','-append')

두 개의 변수를 MAT 파일에 저장합니다. 그런 다음, 압축 없이 세 번째 변수를 같은 파일에 추가합니다.

두 개의 변수 AB를 만든 다음 MAT 파일 버전 7.3에 저장합니다. 기본적으로, save 함수는 myFile.mat에 저장하기 전에 변수 AB를 압축합니다.

A = rand(5);
B = magic(10);
save('myFile.mat','A','B','-v7.3')

MAT 파일의 내용을 확인합니다.

whos('-file','myFile.mat')
  Name       Size            Bytes  Class     Attributes

  A          5x5               200  double              
  B         10x10              800  double              

새로운 변수 C를 만든 다음 압축 없이 myFile.mat에 추가합니다.

C = 5;
save('myFile.mat','C','-append','-nocompression')

MAT 파일의 내용을 확인합니다.

whos('-file','myFile.mat')
  Name       Size            Bytes  Class     Attributes

  A          5x5               200  double              
  B         10x10              800  double              
  C          1x1                 8  double              

입력 인수

모두 축소

파일의 이름으로, 문자형 벡터나 string형으로 지정됩니다. filename을 지정하지 않을 경우 save 함수는 matlab.mat라는 파일에 저장합니다.

filename에 확장자가 없고(즉, 마침표와 그 뒤에 텍스트가 없음) format의 값이 지정되지 않은 경우 MATLAB은 .mat을 추가합니다. filename에 전체 경로가 포함되어 있지 않으면 MATLAB은 현재 폴더에 저장합니다. 파일에 쓸 수 있는 권한이 있어야 합니다.

명령 형식의 save를 사용할 경우 입력값을 작은따옴표 또는 큰따옴표로 묶을 필요가 없습니다. 그러나 filename에 공백이 포함된 경우에는 인수를 작은따옴표로 묶어야 합니다. 예를 들면 save 'filename withspace.mat'와 같습니다.

예: 'myFile.mat'

데이터형: char | string

저장할 변수 이름으로, 하나 이상의 문자형 벡터 또는 string형으로 지정됩니다. 명령 형식의 save를 사용할 경우 입력값을 작은따옴표 또는 큰따옴표로 묶을 필요가 없습니다. variables는 다음 형식 중 하나일 수 있습니다.

variables 입력값의 형식저장할 변수
var1,...,varN나열된 변수를 저장하며, 개별 문자형 벡터 또는 string형으로 지정됩니다.
'*' 와일드카드를 사용하여 패턴을 일치시킬 수 있습니다. 예를 들어, save('filename.mat','A*')는 파일에서 A로 시작하는 모든 변수를 저장합니다.
'-regexp',expr1,...,exprN이름이 정규 표현식과 일치하는 변수만 저장하며, 문자형 벡터 또는 string형으로 지정됩니다. 예를 들어, save('filename.mat','-regexp','^Mon','^Tues')는 파일에서 이름이 Mon이나 Tues로 시작하는 변수만 저장합니다.
'-struct',structName structName으로 지정된 스칼라 구조체의 필드를 파일에 개별 변수로 저장합니다. 예를 들어, save('filename.mat','-struct','S')는 스칼라 구조체 S를 저장합니다.
'-struct',structName,field1,...,fieldN지정된 스칼라 구조체의 지정된 필드를 파일에 개별 변수로 저장합니다. 예를 들어, save('filename.mat,'-struct','S','a','b')는 필드 S.aS.b를 저장합니다.
'-struct',structName,'-regexp',expr1,...,exprN이름이 정규 표현식과 일치하는 필드만 저장하며, 문자형 벡터 또는 string형으로 지정됩니다.

데이터형: char | string

파일 형식으로, 다음 중 하나로 지정됩니다. 명령 형식의 save를 사용할 경우 입력값을 작은따옴표 또는 큰따옴표로 묶을 필요가 없습니다(예: save myFile.txt -ascii -tabs).

fmt의 값파일 형식
'-mat'

이진 MAT 파일 형식입니다.

'-ascii'

8자리 정밀도를 가지는 텍스트 형식입니다.

'-ascii','-tabs'

8자리 정밀도를 가지는, 탭으로 구분된 텍스트 형식입니다.

'-ascii','-double'

16자리 정밀도를 가지는 텍스트 형식입니다.

'-ascii','-double','-tabs'

16자리 정밀도를 가지는, 탭으로 구분된 텍스트 형식입니다.

MAT 파일의 경우, 한 컴퓨터에서 저장된 후 다른 컴퓨터에 로드된 데이터는 다른 컴퓨터 부동소수점 형식에서 허용하는 수준의 정확도와 범위를 유지합니다.

MATLAB 숫자형 값을 텍스트 파일에 저장하려면 텍스트 형식 중 하나를 사용하십시오. 이 경우:

  • 각 변수는 2차원 double형 배열이어야 합니다.

  • 출력값에는 복소수의 실수부만 포함됩니다.

  • MATLAB은 각 변수의 데이터를 파일에 순차적으로 씁니다. load 함수를 사용하여 파일을 읽으려는 경우 모든 변수의 열 개수가 동일해야 합니다. load 함수는 파일에서 단일 변수를 생성합니다.

텍스트 형식을 지정하는 경우 변수 중 하나가 2차원 문자형 배열이면 MATLAB은 문자를 그에 해당하는 내부 ASCII 코드로 변환합니다. 예를 들어, 'abc'는 텍스트 파일에 다음과 같이 표시됩니다.

  9.7000000e+001  9.8000000e+001  9.9000000e+001

데이터형: char | string

MAT 파일 버전으로, 다음 중 하나로 지정됩니다. 명령 형식의 save를 사용할 경우 입력값을 작은따옴표 또는 큰따옴표로 묶을 필요가 없습니다.

version의 값이 파일을 로드할 수 있는 MATLAB 버전지원되는 기능압축각 변수의 최대 크기
'-v7.3'7.3(R2006b) 이상

변수의 일부 저장 및 로드, 그리고 버전 7의 모든 기능. 버전 7.3에서는 또한 '-nocompression' 옵션을 사용하여 압축 없이 변수를 저장할 수 있습니다.

예(디폴트 값)≥ 2GB(64비트 컴퓨터)
'-v7'7.0(R14) 이상

서로 다른 디폴트 문자 인코딩 체계를 사용하는 시스템 간에 파일 공유를 가능하게 하는 Unicode® 문자 인코딩, 그리고 버전 6의 모든 기능

변수당 2^31바이트
'-v6'5(R8) 이상

N차원 배열, 셀형 배열, 구조체형 배열, 19자보다 긴 변수 이름, 그리고 버전 4의 모든 기능

아니요변수당 2^31바이트
'-v4'모든 버전

2차원 double형 배열, 문자형 배열, 희소 배열

아니요배열당 100,000,000개 요소, 변수당 2^31바이트

지정된 버전에서 지원되지 않는 기능을 필요로 하는 데이터 항목이 있는 경우, MATLAB은 이러한 항목을 저장하지 않고 경고를 발생시킵니다. MATLAB의 현재 버전보다 이후 버전은 지정할 수 없습니다.

참고

버전 7.3 MAT 파일은 파일의 내용을 설명하는 데 일부 오버헤드 저장 공간을 필요로 하는 HDF5 기반 형식을 사용합니다. 셀형 배열, 구조체형 배열 또는 이종 데이터형을 저장할 수 있는 기타 컨테이너의 경우, 버전 7.3 MAT 파일이 버전 7 MAT 파일보다 클 수 있습니다.

MAT 파일의 디폴트 버전을 보거나 설정하려면 기본 설정의 일반에서 MAT 파일 저장 형식(MAT-file save format) 옵션을 선택하십시오.

  • 보다 유연하게 ASCII 파일을 생성하려면 dlmwritefprintf를 사용할 수 있습니다.

  • save 함수를 사용하여 그래픽스 객체를 저장하면 파일 크기가 커질 수 있습니다. 이는 파일에 객체를 다시 생성하는 데 필요한 모든 정보가 포함되어 있기 때문입니다.

  • Figure를 저장하는 데는 save 함수를 사용하지 마십시오. savefig 함수를 대신 사용하십시오. R2014b 이상 릴리스에서 save를 사용하여 Figure를 저장하면 이전 버전의 MATLAB에서 MAT 파일에 액세스할 수 없게 됩니다. save를 사용하여 Figure를 저장하면 함수에서 경고 메시지를 표시합니다. save를 사용하기 전에 Figure를 삭제하십시오. Figure가 작업 공간에 바로 없을 수도 있다는 것에 유의하십시오. 예를 들어, Figure가 구조체나 콜백 함수의 작업 공간에 저장되었을 수 있습니다.

R2006a 이전에 소개됨

이 항목이 도움이 되었습니까?