주요 콘텐츠

텍스트 파일에 데이터 쓰기

테이블, 셀형 배열 또는 숫자형 배열에 포함된 테이블 형식 데이터를 MATLAB® 작업 공간에서 텍스트 파일로 내보냅니다.

테이블을 텍스트 파일로 내보내기

writetable 함수를 사용하여 테이블 형식 데이터를 MATLAB® 작업 공간에서 텍스트 파일로 내보낼 수 있습니다. 샘플 테이블을 만들고, 이 테이블을 텍스트 파일에 쓴 다음, 추가 옵션을 사용하여 테이블을 텍스트 파일에 써 보겠습니다.

변수 Pitch, Shape, PriceStock을 포함하는 샘플 테이블 T를 만듭니다.

Pitch = [0.7;0.8;1;1.25;1.5];
Shape = {'Pan';'Round';'Button';'Pan';'Round'};
Price = [10.0;13.59;10.50;12.00;16.69];
Stock = [376;502;465;1091;562];
T = table(Pitch,Shape,Price,Stock)
T=5×4 table
    Pitch      Shape       Price    Stock
    _____    __________    _____    _____

     0.7     {'Pan'   }       10     376 
     0.8     {'Round' }    13.59     502 
       1     {'Button'}     10.5     465 
    1.25     {'Pan'   }       12    1091 
     1.5     {'Round' }    16.69     562 

테이블 Ttabledata.txt라는 텍스트 파일로 내보냅니다. 파일의 내용을 확인합니다. 기본적으로, writetable은 쉼표로 구분하여 데이터를 쓰고 테이블 변수 이름을 열 제목으로 포함합니다.

writetable(T,'tabledata.txt');
type tabledata.txt
Pitch,Shape,Price,Stock
0.7,Pan,10,376
0.8,Round,13.59,502
1,Button,10.5,465
1.25,Pan,12,1091
1.5,Round,16.69,562

RowNames 이름-값 쌍의 인수를 사용하여 행 이름을 포함하는 테이블 T2를 만듭니다.

rowNames = {'M4';'M5';'M6';'M8';'M10'};
T2 = table(Pitch,Shape,Price,Stock,'RowNames',rowNames)
T2=5×4 table
           Pitch      Shape       Price    Stock
           _____    __________    _____    _____

    M4      0.7     {'Pan'   }       10     376 
    M5      0.8     {'Round' }    13.59     502 
    M6        1     {'Button'}     10.5     465 
    M8     1.25     {'Pan'   }       12    1091 
    M10     1.5     {'Round' }    16.69     562 

T2를 탭으로 구분된 텍스트 파일 tabledata2.txt로 내보냅니다. Delimiter 이름-값 쌍의 인수를 사용하여 탭 구분 기호를 지정하고, WriteRowNames 이름-값 쌍의 인수를 사용하여 행 이름을 포함합니다. 파일의 내용을 확인합니다.

writetable(T2,'tabledata2.txt','Delimiter','\t','WriteRowNames',true);
type tabledata2.txt
Row	Pitch	Shape	Price	Stock
M4	0.7	Pan	10	376
M5	0.8	Round	13.59	502
M6	1	Button	10.5	465
M8	1.25	Pan	12	1091
M10	1.5	Round	16.69	562

셀형 배열을 텍스트 파일로 내보내기

다음 방법 중 하나를 사용하여 셀형 배열을 MATLAB® 작업 공간에서 텍스트 파일로 내보낼 수 있습니다.

  • writecell 함수를 사용하여 셀형 배열을 텍스트 파일로 내보냅니다.

  • fprintf를 사용하여 출력 데이터의 형식을 지정해서 셀형 배열을 내보냅니다.

샘플 셀형 배열 C를 생성합니다.

C = {'Atkins',32,77.3,'M';'Cheng',30,99.8,'F';'Lam',31,80.2,'M'}
C = 3×4 cell array
    {'Atkins'}    {[32]}    {[77.3000]}    {'M'}
    {'Cheng' }    {[30]}    {[99.8000]}    {'F'}
    {'Lam'   }    {[31]}    {[80.2000]}    {'M'}

writecell을 사용하여 셀형 배열을 내보냅니다.

writecell(C,'data.dat')

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

type data.dat
Atkins,32,77.3,M
Cheng,30,99.8,F
Lam,31,80.2,M

또는, fprintf를 사용하여 셀형 배열을 가져옵니다. 쓸 수 있는 대상 파일 celldata.dat를 엽니다. 형식 지정자를 사용해 formatSpec을 정의하여 파일의 데이터 패턴을 설명합니다. 일반적인 형식 지정자에는 문자형 벡터의 경우 '%s', 정수의 경우 '%d', 부동소수점 숫자의 경우 '%f' 등이 있습니다. 각 형식 지정자를 공백으로 구분하여 출력 파일에 대한 공백 구분 기호를 표시합니다. 각 데이터 행의 끝에 새 줄(Newline) 문자('\n')를 포함시킵니다.

fileID = fopen('celldata.dat','w');
formatSpec = '%s %d %2.1f %s\n';

C의 크기를 확인하고 fprintf 함수를 사용하여 한 번에 하나씩 데이터 행을 내보냅니다. 그런 다음 파일을 닫습니다. fprintf는 공백으로 구분된 파일을 씁니다.

[nrows,ncols] = size(C);
for row = 1:nrows
    fprintf(fileID,formatSpec,C{row,:});
end
fclose(fileID);

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

type celldata.dat
Atkins 32 77.3 M
Cheng 30 99.8 F
Lam 31 80.2 M

숫자형 배열을 텍스트 파일로 내보내기

writematrix를 사용하여 숫자형 배열을 텍스트 파일로 내보낼 수 있습니다.

숫자형 배열 A를 만듭니다.

A = magic(5)/10 

숫자형 배열을 myData.dat에 쓰고 구분 기호를 ';'으로 지정합니다. 그런 다음, 파일의 내용을 확인합니다.

writematrix(A,'myData.dat','Delimiter',';')  
type myData.dat
1.7;2.4;0.1;0.8;1.5
2.3;0.5;0.7;1.4;1.6
0.4;0.6;1.3;2;2.2
1;1.2;1.9;2.1;0.3
1.1;1.8;2.5;0.2;0.9

참고 항목

| | | | |