Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

save

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

설명

예제

save(filename)은 현재 작업 공간의 모든 변수를 이진 MATLAB® 파일(MAT 파일) filename에 저장합니다. 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(디폴트 값)과 버전 7.3만 지원합니다. 따라서 version"-v7" 또는 "-v7.3"으로 지정해야 합니다. variables 인수는 선택 사항입니다.

예제

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

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

버전 6 MAT 파일에 추가하려면 또한 version"-v6"으로 지정해야 합니다.

예제

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

예제

save filename은 명령 형식의 구문입니다. 명령 형식에는 특수 문자가 덜 필요합니다. 괄호를 입력하거나 입력값을 작은따옴표 또는 큰따옴표로 묶을 필요가 없습니다. 입력값은 쉼표 대신 공백을 사용하여 분리합니다. 입력값에 공백이 포함된 경우에는 작은따옴표로 묶으십시오.

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

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

위에 열거된 구문의 입력값 중 어느 것이든 포함시킬 수 있습니다. 예를 들어, 변수 X를 파일 my file.mat에 저장하려면 다음과 같이 합니다.

save 'my file.mat' X    % command form, using single quotes
save("my file.mat","X") % function form, using double quotes

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")

save 함수는 변수를 현재 폴더에서 파일 pqfile.mat에 저장합니다.

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

save pqfile.mat p q

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

p = rand(1,3);
q = ones(3);
save("pqfile.txt","p","q","-ascii")
type("pqfile.txt")
   8.1472369e-01   9.0579194e-01   1.2698682e-01
   1.0000000e+00   1.0000000e+00   1.0000000e+00
   1.0000000e+00   1.0000000e+00   1.0000000e+00
   1.0000000e+00   1.0000000e+00   1.0000000e+00

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

save pqfile.txt p q -ascii

세 개의 필드가 포함된 구조체를 생성합니다.

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

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

save("newstruct.mat","-struct","s1")

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

whos("-file","newstruct.mat")
  Name      Size            Bytes  Class     Attributes

  a         1x1                 8  double              
  b         1x2               390  cell                
  c          -                150  string              

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

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

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

save example.mat A B -v7.3

두 개의 변수를 만들고 버전 7.3 MAT 파일 myFile.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" 옵션은 저장 속도를 향상시킵니다.

두 개의 변수를 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              

save 함수는 이전 변수 pq를 덮어쓰지 않고 변수 atest.mat에 추가합니다.

참고: 버전 6 MAT 파일에 추가하려면 "-v6""-append"를 모두 지정하십시오. 예를 들어, 변수 a를 버전 6 MAT 파일 test.mat에 추가하려면 다음을 실행하십시오.

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

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

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

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              

여러 변수를 만든 다음 명령 구문을 사용하여 변수를 myMat.mat라는 파일에 저장합니다.

a = 1;
b = 2;
c = 7;
d = 4;
save myMat.mat a c

c 변수를 수정합니다.

c = 3;

myMat.mat에 이미 있는 작업 공간 변수만 저장합니다.

existingVars = whos("-file","myMat.mat");
save("myMat.mat",existingVars.name)

입력 인수

모두 축소

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

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

작업 공간 변수를 원격 위치에 있는 MAT 파일에 저장하려면 filename을 다음과 같은 형식의 URL(Uniform Resource Locator)로 지정하십시오.

scheme_name://path_to_file/my_file.mat

원격 위치에 따라 scheme_name은 다음 표에 있는 값 중 하나가 될 수 있습니다.

원격 위치scheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs

save 함수는 버전 7.3 MAT 파일에 대해서만 원격 위치에 저장하는 것을 지원합니다.

온라인 저장소 서비스에 액세스하도록 MATLAB을 설정하는 방법에 대한 자세한 내용은 원격 데이터로 작업하기 항목을 참조하십시오.

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

예: "myFile.mat"

예: "s3://bucketname/path_to_file/my_file.mat"

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

variables는 다음 형식 중 하나가 될 수 있습니다.

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

파일 형식으로, 다음 표에 있는 값 중 하나로 지정됩니다.

fmt의 값파일 형식
"-mat"

이진 MAT 파일 형식

"-ascii"

8자리 정밀도를 가지는 텍스트 형식

"-ascii","-tabs"

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

"-ascii","-double"

17자리 정밀도를 가지는 텍스트 형식

"-ascii","-double","-tabs"

17자리 정밀도를 가지는, 탭으로 구분된 텍스트 형식

명령 형식의 save를 사용할 경우 입력값을 작은따옴표 또는 큰따옴표로 묶을 필요가 없습니다. 예를 들면 save myFile.txt -ascii -tabs와 같습니다.

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

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

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

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

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

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

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

원격 위치에 저장할 때 savefmt"-mat"로 지정하는 것만 지원합니다.

데이터형: string | char

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

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

변수의 일부 저장, 버전 7의 모든 기능.

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

Unicode® 문자 인코딩(서로 다른 디폴트 문자 인코딩 체계를 사용하는 시스템 간에 파일 공유를 가능하게 함), 버전 6의 모든 기능. 버전 7은 "-nocompression" 옵션을 사용하여 압축 없이 변수를 저장하는 것도 지원함.

예(디폴트 값)변수당 231바이트
"-v6"5(R8) 이상

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

아니요변수당 231바이트
"-v4"모두

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

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

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

참고

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

참고

버전 6 및 버전 4 MAT 파일은 ASCII 문자 인코딩만 지원합니다.

MAT 파일의 디폴트 버전을 보거나 설정하려면 탭으로 가서 환경 섹션에서 기본 설정을 선택하십시오. MATLAB > 일반 > MAT 파일MAT 파일 저장 형식 옵션을 선택합니다.

데이터형: string | char

제한 사항

  • 두 개의 개별 MATLAB 세션의 데이터를 동시에 같은 파일에 저장하려고 하면 파일이 손상될 수 있습니다.

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

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

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

  • filename 인수는 현재 플랫폼에서 유효한 임의의 이름일 수 있습니다. 그러나 load 함수가 어느 플랫폼에서든 파일에 액세스할 수 있도록 하려면 filename\(백슬래시), /(슬래시), :(콜론), *(별표), ?(물음표), "(큰따옴표), <(보다 작음 기호), >(보다 큼 기호), |(파이프), '(아포스트로피), ;(세미콜론)을 사용하지 마십시오.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장