텍스트 파일에 데이터 쓰기
테이블, 셀형 배열 또는 숫자형 배열에 포함된 테이블 형식 데이터를 MATLAB® 작업 공간에서 텍스트 파일로 내보냅니다.
테이블을 텍스트 파일로 내보내기
writetable
함수를 사용하여 테이블 형식 데이터를 MATLAB® 작업 공간에서 텍스트 파일로 내보낼 수 있습니다. 샘플 테이블을 만들고, 이 테이블을 텍스트 파일에 쓴 다음, 추가 옵션을 사용하여 테이블을 텍스트 파일에 써 보겠습니다.
변수 Pitch
, Shape
, Price
및 Stock
을 포함하는 샘플 테이블 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
테이블 T
를 tabledata.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
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
에 쓰고 구분 기호를 ';'
으로 지정합니다. 그런 다음, 파일의 내용을 확인합니다.
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
참고 항목
writematrix
| writecell
| writetimetable
| fprintf
| type
| writetable