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

writetable

파일에 테이블 쓰기

설명

예제

writetable(T)는 쉼표로 구분된 텍스트 파일에 테이블 T를 씁니다. 파일 이름은 테이블의 작업 공간 변수 이름으로, 확장자 .txt가 추가됩니다. writetable은 입력 테이블 이름에서 파일 이름을 생성할 수 없는 경우에 파일 table.txt에 씁니다.

T에 있는 변수의 각 열은 출력 파일의 열이 됩니다. T의 변수 이름은 파일의 첫 번째 라인에서 열 제목이 됩니다.

writetable(T,filename)filename으로 지정된 이름과 확장자를 가진 파일에 씁니다.

writetable은 지정된 확장자에 따라 파일 형식을 결정합니다. 확장자는 다음 중 하나여야 합니다.

  • .txt, .dat, .csv - 기호로 구분된 텍스트 파일

  • .xls, .xlsm, .xlsx - Excel® 스프레드시트 파일

  • .xlsb - Windows®용 Excel이 설치된 시스템에서 지원되는 Excel 스프레드시트 파일

예제

writetable(___,Name,Value)는 하나 이상의 Name,Value 쌍 인수로 추가 옵션을 지정하여 파일에 테이블을 씁니다. 이 구문은 위에 열거한 구문에 있는 어떤 입력 인수도 포함할 수 있습니다.

예를 들어, 변수 이름을 출력 파일의 열 제목으로 쓸 것인지 여부를 지정할 수 있습니다.

예제

모두 축소

테이블을 만듭니다.

T = table(['M';'F';'M'],[45 45;41 32;40 34],...
    {'NY';'CA';'MA'},[true;false;false])
T=3×4 table
    Var1      Var2      Var3    Var4 
    ____    ________    ____    _____

     M      45    45    'NY'    true 
     F      41    32    'CA'    false
     M      40    34    'MA'    false

테이블을 쉼표로 구분된 텍스트 파일에 쓰고 파일 내용을 표시합니다.

writetable(T)

writetable이 텍스트 파일 T.txt를 출력합니다.

type 'T.txt'
Var1,Var2_1,Var2_2,Var3,Var4
M,45,45,NY,1
F,41,32,CA,0
M,40,34,MA,0

두 열 위에 놓인 변수 이름 Var2에는 writetable이 고유한 접미사를 추가합니다.

테이블을 만듭니다.

T = table(['M';'F';'M'],[45 45;41 32;40 34],...
    {'NY';'CA';'MA'},[true;false;false])
T=3×4 table
    Var1      Var2      Var3    Var4 
    ____    ________    ____    _____

     M      45    45    'NY'    true 
     F      41    32    'CA'    false
     M      40    34    'MA'    false

테이블을 공백으로 구분된 텍스트 파일 myData.txt에 쓰고 파일 내용을 표시합니다.

writetable(T,'myData.txt','Delimiter',' ')  
type 'myData.txt'
Var1 Var2_1 Var2_2 Var3 Var4
M 45 45 NY 1
F 41 32 CA 0
M 40 34 MA 0

두 열 위에 놓인 변수 이름 Var2에는 writetable이 고유한 접미사를 추가합니다.

테이블을 만듭니다.

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

T = table(Age,Height,Weight,BloodPressure,...
    'RowNames',LastName)
T=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Smith       38       71       176       124     93  
    Johnson     43       69       163       109     77  
    Williams    38       64       131       125     83  
    Jones       40       67       133       117     75  
    Brown       49       64       119       122     80  

테이블 T를 쉼표로 구분된 텍스트 파일 myPatientData.dat에 쓰고 파일 내용을 표시합니다.

writetable(T,'myPatientData.dat','WriteRowNames',true)  
type 'myPatientData.dat'
Row,Age,Height,Weight,BloodPressure_1,BloodPressure_2
Smith,38,71,176,124,93
Johnson,43,69,163,109,77
Williams,38,64,131,125,83
Jones,40,67,133,117,75
Brown,49,64,119,122,80

행 이름이 포함된 첫 번째 열에는 열 제목 Row가 위치합니다. 속성 T.Properties.DimensionNames의 첫 번째 차원 이름이 테이블에 사용된 것입니다.

테이블의 영어 날짜를 독일어로 변환한 후 해당 테이블을 파일에 써 보겠습니다.

날짜가 영어로 표시되어 있는 datetime형 배열이 포함된 테이블을 만듭니다. 날짜값과 함께 사용될 숫자형 데이터로 구성된 열 벡터를 만듭니다.

D = datetime({'01-Jan-2014';'01-Feb-2014';'01-Mar-2014'});
D.Format = 'dd MMMM yyyy';
X1 = [20.2;21.6;20.7];
X2 = [100.5;102.7;99.8];
T = table(D,X1,X2)
T = 

           D             X1      X2  
    ________________    ____    _____

    01 January 2014     20.2    100.5
    01 February 2014    21.6    102.7
    01 March 2014       20.7     99.8

테이블을 텍스트 파일에 씁니다. DateLocale 이름-값 쌍의 인수를 사용하여 날짜 로케일을 독일어로 지정한 후 텍스트 파일의 날짜를 표시합니다.

writetable(T,'myfile.txt','DateLocale','de_DE');
type myfile.txt
D,X1,X2
01 Januar 2014,20.2,100.5
01 Februar 2014,21.6,102.7
01 März 2014,20.7,99.8

데이터에 다른 언어 문자 또는 비ASCII 문자가 들어 있는 경우 인코딩 파라미터를 사용하여 파일을 올바르게 썼는지 확인합니다. 먼저, 제공된 테이블을 작업 공간에 불러옵니다. 그런 다음, 디폴트 인코딩을 사용하여 테이블을 파일에 씁니다. 마지막으로, 'UTF-8' 인코딩을 사용하여 테이블을 쓰고 그 결과를 검토합니다.

테이블 T가 들어 있는 Table_Japanese_Characters.mat를 불러옵니다. 아래에 테이블의 미리보기가 나와 있습니다. 이 테이블에는 일본어 문자로 구성된 열이 두 개 들어 있습니다.

load('Table_Japanese_Characters.mat')

테이블을 파일에 씁니다. writetable 함수는 파일을 쓸 때 시스템 디폴트 인코딩을 사용합니다. 결과는 시스템 설정에 따라 달라질 수 있습니다. 결과 파일을 검토하려면 readtable 함수를 사용하여 테이블을 다시 작업 공간으로 읽어 들이십시오. writetable이 다른 언어 문자가 들어 있는 열(1과 3)을 쓰는 데 성공하지 못했습니다.

writetable(T,'myTable.txt')
myTable = readtable('myTable.txt')
myTable=9×3 table
      A        B          C   
    _____    ______    _______

    ''     458.98    ''  
    ''     530.14    ''  
    ''      289.4    ''  
    ''      434.81    ''
    ''    186.44    '' 
    ''           0    ''   
    ''      231.29    ''
    ''      311.86    ''
    ''     239.93    ''   

테이블에 다른 언어 문자 또는 비ASCII 문자가 들어 있는 경우 'Encoding' 파라미터를 사용하여 데이터를 올바르게 쓰도록 합니다. 'Encoding'을 광범위한 다른 언어 문자와 비ASCII 문자를 지원하는 'UTF-8'로 설정합니다. 결과 파일을 검토하려면 readtable 함수를 사용하여 테이블을 다시 작업 공간으로 읽어 들이십시오. 인코딩 파라미터가 올바르면 writetable 함수가 데이터를 성공적으로 씁니다.

writetable(T,'myTable_UTF8.txt','Encoding','UTF-8')
myTable_UTF8 = readtable('myTable_UTF8.txt','Encoding','UTF-8')
myTable_UTF8=9×3 table
       A         B            C     
    _______    ______    ___________

    '南西'     458.98    '冬の嵐'    
    '南東'     530.14    '冬の嵐'    
    '南東'      289.4    '冬の嵐'    
    '西'       434.81    '機器の故障' 
    '中西部'    186.44    '深刻な嵐'  
    '西'            0    '攻撃'      
    '西'       231.29    '機器の故障' 
    '西'       311.86    '機器の故障' 
    '北東'     239.93    '火災'      

테이블을 만듭니다.

T = table(['M';'F';'M'],[45;41;36],...
    {'New York, NY';'San Diego, CA';'Boston, MA'},[true;false;false])
T=3×4 table
    Var1    Var2         Var3          Var4 
    ____    ____    _______________    _____

     M       45     'New York, NY'     true 
     F       41     'San Diego, CA'    false
     M       36     'Boston, MA'       false

테이블을 쉼표로 구분된 텍스트 파일 myData.csv에 쓴 후 파일 내용을 봅니다. 'QuoteStrings' 이름-값 쌍의 인수를 사용하여 세 번째 열의 쉼표가 구분 기호로 처리되지 않도록 합니다.

writetable(T,'myData.csv','Delimiter',',','QuoteStrings',true)
type 'myData.csv'
Var1,Var2,Var3,Var4
"M",45,"New York, NY",1
"F",41,"San Diego, CA",0
"M",36,"Boston, MA",0

테이블을 만듭니다.

T = table(['M';'F';'M'],[45 45;41 32;40 34],...
    {'NY';'CA';'MA'},[true;false;false])
T=3×4 table
    Var1      Var2      Var3    Var4 
    ____    ________    ____    _____

     M      45    45    'NY'    true 
     F      41    32    'CA'    false
     M      40    34    'MA'    false

테이블을 스프레드시트 myData.xls에 씁니다. 데이터를 두 번째 시트의 끝 지점이 B2F6인 5x5 범위에 포함시킵니다.

writetable(T,'myData.xls','Sheet',2,'Range','B2:F6')

지정된 범위가 입력 테이블 T의 크기보다 크기 때문에 Excel®은 B6부터 F6까지의 스프레드시트 행에 #N/A를 입력합니다.

입력 인수

모두 축소

입력 데이터로, 테이블로 지정됩니다.

파일 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

쓰려는 위치에 따라 filename은 다음 형식 중 하나가 될 수 있습니다.

위치

형식

현재 폴더

현재 폴더에 쓰려면 filename에 파일의 이름을 지정하십시오.

예: 'myTextFile.csv'

다른 폴더

현재 폴더가 아닌 다른 폴더에 쓰려면 filename에 전체 경로 또는 상대 경로 이름을 지정하십시오.

예: 'C:\myFolder\myTextFile.csv'

예: 'myFolder\myExcelFile.xlsx'

원격 위치

원격 위치에 쓰려면 filename이 다음 형식과 같이 IRI(Internationalized Resource Identifier)로 지정된 파일의 전체 경로를 포함해야 합니다.

scheme_name://path_to_file/my_file.ext

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

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

자세한 내용은 원격 데이터로 작업하기 항목을 참조하십시오.

예: 's3://bucketname/path_to_file/my_file.xlsx'

  • filename에 파일 확장자가 포함되는 경우 쓰기 함수는 확장자를 통해 파일 형식을 결정하게 됩니다. 포함되어 있지 않으면 쓰기 함수는 쉼표로 구분된 텍스트 파일을 생성하고 확장자 .txt를 추가합니다. 또는 파일 확장자 없이 filename을 지정한 다음, 파일 유형을 나타내는 'FileType' 이름-값 쌍의 인수를 포함시킬 수도 있습니다.

  • filename이 없으면 쓰기 함수는 파일을 생성합니다.

  • filename이 기존 텍스트 파일의 이름이면 쓰기 함수는 해당 파일을 덮어씁니다.

  • filename이 기존 스프레드시트 파일의 이름이면 쓰기 함수는 지정한 위치에 데이터를 쓰지만 입력 데이터의 범위 외의 값은 덮어쓰지 않습니다.

데이터형: char | string

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: 'WriteVariableNames',false는 변수 이름이 출력 파일의 첫 번째 행으로 포함되어서는 안 된다는 것을 나타냅니다.

텍스트 파일과 스프레드시트 파일

모두 축소

파일 형식으로, 'FileType'과 함께 'text' 또는 'spreadsheet'를 포함하는 문자형 벡터 또는 string형이 쉼표로 구분되어 지정됩니다.

'FileType' 이름-값 쌍은 filename 입력 인수와 함께 사용되어야 합니다. filename 입력 인수에 표준 파일 확장자가 포함된 경우에는 'FileType' 이름-값 쌍의 인수를 지정할 필요가 없습니다. 쓰기 함수는 다음과 같은 표준 파일 확장자를 인식합니다.

  • .txt, .dat, .csv - 기호로 구분된 텍스트 파일

  • .xls, .xlsm, .xlsx - Excel 스프레드시트 파일

  • .xlsb - Windows용 Excel이 설치된 시스템에서 지원되는 Excel 스프레드시트 파일

예: 'FileType','spreadsheet'

데이터형: char | string

변수 이름을 열 제목으로 쓸 것인지 여부를 나타내는 표시자로, 'WriteVariableNames'와 함께 true 또는 false가 쉼표로 구분되어 지정됩니다.

표시자

동작

true

쓰기 함수는 변수 이름을 출력값의 열 제목으로 포함시킵니다. 이는 디폴트 동작입니다.

false

쓰기 함수는 출력값에 변수 이름을 포함시키지 않습니다.

행 이름을 첫 번째 열에 쓸 것인지 여부를 나타내는 표시자로, 'WriteRowNames'와 함께 false 또는 true가 쉼표로 구분되어 지정됩니다.

표시자

동작

false

writetableT의 행 이름을 출력값에 포함시키지 않습니다. 이는 디폴트 동작입니다.

true

writetableT의 행 이름을 출력값의 첫 번째 열로 포함시킵니다.

'WriteVariableNames' 논리값 표시자와 'WriteRowNames' 논리값 표시자가 모두 true이면 writetable은 속성 T.Properties.DimensionNames의 첫 번째 차원 이름을 출력값 내 첫 번째 열의 열 제목으로 사용합니다.

날짜 쓰기에 적용할 로케일로, 'DateLocale'과 함께 문자형 벡터 또는 string형 스칼라가 쉼표로 구분되어 지정됩니다. datetime 값을 파일에 쓸 때 writetable이 어떤 로케일을 사용해 월 이름, 요일 이름, 약어를 쓸지 지정하려면 DateLocale을 사용하십시오. 문자형 벡터 또는 string형은 xx_YY 형식을 사용합니다. 여기서 xx는 언어를 지정하는 ISO 639-1 두 자리 코드(소문자)이고, YY는 국가를 지정하는 ISO 3166-1 alpha-2 코드(대문자)입니다. 로케일에 일반적으로 사용되는 값 목록은 datetime 함수에 대한 Locale 이름-값 쌍의 인수를 참조하십시오.

쓰기 함수는 날짜를 Excel 형식이 지정된 날짜로 쓸 수 있는 경우에는 항상 'DateLocale' 파라미터 값을 무시합니다.

예: 'DateLocale','ja_JP'

데이터형: char | string

텍스트 파일에만 해당

모두 축소

필드 구분 기호 문자로, 'Delimiter'와 함께 다음 지정자 중 하나가 들어 있는 문자형 벡터 또는 string형 스칼라가 쉼표로 구분되어 지정됩니다.

지정자

필드 구분 기호

','

'comma'

쉼표. 이는 디폴트 동작입니다.

' '

'space'

공백

'\t'

'tab'

';'

'semi'

세미콜론

'|'

'bar'

세로 막대

'Delimiter' 이름-값 쌍은 구분된 텍스트 파일에만 사용할 수 있습니다.

예: 'Delimiter','space'

데이터형: char | string

따옴표로 묶인 텍스트를 쓸 것인지 여부를 나타내는 표시자로, 'QuoteStrings'와 함께 false 또는 true가 쉼표로 구분되어 지정됩니다. 'QuoteStrings'true이면 쓰기 함수는 텍스트를 큰따옴표로 묶고, 해당 텍스트 내에 있는 모든 큰따옴표 문자를 두 개의 큰따옴표 문자로 바꿉니다.

'QuoteStrings' 이름-값 쌍은 구분된 텍스트 파일에만 사용할 수 있습니다.

파일과 연결된 문자 인코딩 체계로, 'Encoding'과 함께 'system' 또는 다음 표에 있는 표준 문자 인코딩 체계 이름이 쉼표로 구분되어 지정됩니다. 인코딩을 지정하지 않거나 인코딩을 'system'으로 지정할 경우, 쓰기 함수는 시스템 디폴트 인코딩을 사용하여 파일을 씁니다.

'Big5'

'ISO-8859-1'

'windows-874'

'Big5-HKSCS'

'ISO-8859-2'

'windows-949'

'CP949'

'ISO-8859-3'

'windows-1250'

'EUC-KR'

'ISO-8859-4'

'windows-1251'

'EUC-JP'

'ISO-8859-5'

'windows-1252'

'EUC-TW'

'ISO-8859-6'

'windows-1253'

'GB18030'

'ISO-8859-7'

'windows-1254'

'GB2312'

'ISO-8859-8'

'windows-1255'

'GBK'

'ISO-8859-9'

'windows-1256'

'IBM866'

'ISO-8859-11'

'windows-1257'

'KOI8-R'

'ISO-8859-13'

'windows-1258'

'KOI8-U'

'ISO-8859-15'

'US-ASCII'

 

'Macintosh'

'UTF-8'

 

'Shift_JIS'

 

예: 'system'은 시스템 디폴트 인코딩을 사용합니다.

데이터형: char | string

스프레드시트 파일만 해당

모두 축소

테이블을 쓰려는 워크시트로, 'Sheet'와 함께 워크시트 이름을 포함한 문자형 벡터나 string형 스칼라 또는 워크시트 인덱스를 나타내는 양의 정수가 쉼표로 구분되어 지정됩니다. 워크시트 이름에는 콜론(:)을 사용할 수 없습니다. 스프레드시트 파일에서 시트의 이름을 확인하려면 [status,sheets] = xlsfinfo(filename)을 사용하십시오.

시트가 존재하지 않으면 쓰기 함수는 이 워크시트 모음 끝에 새 시트를 추가합니다. 시트가 워크시트의 개수보다 큰 인덱스인 경우, 통합 문서에 있는 워크시트의 개수가 시트 인덱스와 같아질 때까지 빈 시트를 추가합니다. 두 경우 모두, 쓰기 함수는 새 워크시트가 추가되었음을 나타내는 경고도 생성합니다.

'Sheet' 이름-값 쌍은 스프레드시트 파일에만 사용할 수 있습니다.

예: 'Sheet',2

예: 'Sheet', 'MySheetName'

데이터형: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

테이블을 쓰려는 워크시트의 사각형 부분으로, 'Range'와 함께 다음 형식 중 하나의 문자형 벡터 또는 string형 스칼라가 쉼표로 구분되어 지정됩니다.

Range 값 형식 설명
'Corner1'

Corner1은 기록할 범위의 첫 번째 셀을 지정합니다. 쓰기 함수는 이 셀부터 시작하여 데이터를 씁니다.

예: 'Range','D2'

'Corner1:Corner2'

Corner1Corner2는 기록할 범위를 정의하는 2개의 끝 지점입니다. 예를 들어, 'D2:H4'는 워크시트에서 2개의 끝 지점 D2H4 사이에 있는 3x5 사각 범위를 나타냅니다. 'Range' 이름-값 쌍의 인수는 대/소문자를 구분하지 않으며 Excel A1 참조 스타일을 사용합니다(Excel 도움말 참조).

예: 'Range','D2:H4'

  • 지정한 범위가 입력 데이터의 크기보다 작으면 쓰기 함수는 범위에 맞는 입력 데이터의 일부만 씁니다.

  • 지정한 범위가 입력 데이터의 크기보다 크면 쓰기 함수는 나머지 범위를 그대로 둡니다.

'Range' 이름-값 쌍은 Excel 파일에만 사용할 수 있습니다.

예: 'Range', 'A1:F10'

데이터형: char | string

스프레드시트 데이터를 쓸 때 Windows용 Microsoft® Excel 인스턴스를 시작할지 지정하는 플래그로, 'UseExcel'과 함께 true 또는 false가 쉼표로 구분되어 지정됩니다.

Windows 플랫폼에 스프레드시트 파일을 쓸 때 Microsoft Excel 인스턴스를 시작하지 않으려면 'UseExcel' 파라미터를 false로 설정하십시오.

'UseExcel' 파라미터는 다음 값 중 하나로 설정할 수 있습니다.

  • true — 쓰기 함수가 파일을 쓸 때 Microsoft Excel 인스턴스를 시작합니다. 이 설정은 Excel이 설치된 Windows 시스템의 디폴트 값입니다.

  • false — 쓰기 함수가 파일을 쓸 때 Microsoft Excel 인스턴스를 시작하지 않습니다. Excel이 설치되지 않은 Windows, Mac 및 Linux®의 디폴트 값은 false입니다. 이 모드에서 작업할 때 쓰기 기능은 파일 형식 지원과 수식이나 매크로 같은 대화형 기능 지원 면에서 다르게 동작합니다.

UseExcel

true

false

지원되는 파일 형식

.xls, .xlsx, .xlsm, .xltx, .xltm, .xlsb, .ods

.xls, .xlsx, .xlsm, .xltx, .xltm

수식이나 매크로 같은 대화형 기능 지원

아니요

알고리즘

  • 'WriteVariableNames' 논리값 표시자와 'WriteRowNames' 논리값 표시자가 모두 true이면 writetable 함수는 속성 T.Properties.DimensionNames의 첫 번째 차원 이름을 출력값 내 첫 번째 열의 열 제목으로 사용합니다.

  • Excel은 Inf 값을 65535로 변환합니다. MATLAB®NaN, NaT, <undefined> categorical형 값, <missing> 문자열 값을 빈 셀로 변환합니다.

  • Excel 파일의 경우, writetabledatetime형 배열이 포함된 table 변수를 Excel 날짜로 씁니다. table에 연도가 1900년 또는 1904년 이전인 datetime형 배열이 포함되어 있으면 writetable은 변수를 텍스트로 씁니다. Excel 날짜에 대한 자세한 내용은 https://support.microsoft.com/en-us/kb/214330 항목을 참조하십시오.

  • 일부의 경우 writetable 함수가 만든 파일이 T를 정확하게 나타내지 못할 수 있습니다. readtable을 사용하여 이 파일을 읽을 때 이것을 확인할 수 있습니다. 결과 테이블의 형식이나 내용이 원래 테이블과 다를 수 있습니다. 테이블을 저장한 뒤 추후에 원래 테이블과 정확하게 일치하는 동일한 데이터와 구성으로 다시 가져오고자 하는 경우에는 테이블을 MAT 파일로 저장하십시오. 다음의 경우 writetable은 부정확한 테이블을 씁니다.

    • 텍스트 파일에 쓸 때 writetable은 숫자형 변수는 long g 형식으로, categorical형 변수 또는 문자형 변수는 따옴표가 없는 문자로 출력합니다.

    • 둘 이상의 열이 있는 변수의 경우, writetable은 열 제목으로 사용할 변수 이름에 고유한 식별자를 추가합니다.

    • 세 개 이상의 차원이 있는 출력 변수의 경우, writetable은 해당 변수를 후행 차원이 축소된 2차원으로 출력합니다. 예를 들면, writetable은 4x3x2 변수를 마치 크기가 4x6인 것처럼 출력합니다.

    • cell 데이터형이 포함된 변수의 경우, writetable은 여러 필드에 각 셀의 내용을 단일 행으로 출력합니다. 내용이 숫자형, 논리형, 문자형, categorical형이 아니면 writetable은 비어 있는 하나의 필드를 출력합니다.

R2013b에 개발됨