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

텍스트 파일에 데이터 쓰기

테이블, 셀형 배열 또는 숫자형 배열에 포함된 테이블 형식 데이터를 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. U로 내보냅니다. 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® 작업 공간에서 텍스트 파일로 내보낼 수 있습니다.

  • 셀형 배열을 테이블로 변환하고 writetable을 사용하여 이 테이블을 텍스트 파일로 내보냅니다.

  • 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'}

writetable을 사용하여 셀형 배열을 내보냅니다. 먼저, cell2table 함수를 사용하여 셀형 배열을 테이블로 변환합니다. 그런 다음, 테이블을 텍스트 파일에 씁니다.

T = cell2table(C,'VariableNames',{'Name','Age','Result','Gender'});
writetable(T,'tabledata.dat');

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

type tabledata.dat
Name,Age,Result,Gender
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

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

dlmwrite를 사용하여 숫자형 배열을 텍스트 파일로 내보낼 수 있습니다. dlmwrite 함수에서는 파일에서 사용할 구분 기호와 데이터의 숫자 정밀도를 지정할 수 있습니다.

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

A = magic(5)/10 
A = 5×5

    1.7000    2.4000    0.1000    0.8000    1.5000
    2.3000    0.5000    0.7000    1.4000    1.6000
    0.4000    0.6000    1.3000    2.0000    2.2000
    1.0000    1.2000    1.9000    2.1000    0.3000
    1.1000    1.8000    2.5000    0.2000    0.9000

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

dlmwrite('myData.dat',A,'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

배열의 숫자가 소수점 이하 5자리의 정밀도를 갖도록 지정하여 내보냅니다. 그런 다음, 파일의 내용을 확인합니다.

dlmwrite('myDataII.dat',A,'delimiter',';','precision','%.5f') 
type myDataII.dat
1.70000;2.40000;0.10000;0.80000;1.50000
2.30000;0.50000;0.70000;1.40000;1.60000
0.40000;0.60000;1.30000;2.00000;2.20000
1.00000;1.20000;1.90000;2.10000;0.30000
1.10000;1.80000;2.50000;0.20000;0.90000

참고 항목

| | |