Main Content

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

writetable

파일에 테이블 쓰기

설명

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

텍스트 및 스프레드시트 파일의 경우 T의 각 변수 열은 출력 파일에서 열이 됩니다. T의 변수 이름은 파일 첫 번째 행의 열 제목이 됩니다.

XML 파일의 경우 T의 각 열은 출력 파일에서 XML 노드가 됩니다. T의 변수 이름은 출력 XML 파일에서 요소 노드의 이름이 됩니다.

예제

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

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

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

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

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

  • .xml - XML(Extensible Markup Language) 파일

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','all')
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인 5×5 범위에 포함시킵니다. 워크시트에 대응되는 인덱스를 지정하여 데이터를 쓰려는 워크시트를 변경할 수 있습니다.

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

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

공백 및 비ASCII 문자를 비롯한 임의의 문자를 갖는 변수 이름을 포함하는 테이블 형식 데이터를 쓸 수 있습니다. 임의의 변수 이름을 갖는 테이블을 만들고 테이블을 텍스트 파일에 씁니다. 그런 다음 원래 변수 이름을 그대로 유지한 채 테이블 형식 데이터를 다시 읽어 들입니다.

임의의 변수 이름을 갖는 3개의 변수를 포함하는 테이블을 만듭니다. 첫 번째 변수와 세 번째 변수는 공백과 비ASCII 문자를 포함합니다.

LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Smoker = logical([1;0;1;0;1]);
varNames = {'Last Name','Age','Smoker (1 or 0)'};
T = table(LastName,Age,Smoker,'VariableNames',varNames)
T=5×3 table
     Last Name     Age    Smoker (1 or 0)
    ___________    ___    _______________

    {'Sanchez'}    38          true      
    {'Johnson'}    43          false     
    {'Li'     }    38          true      
    {'Diaz'   }    40          false     
    {'Brown'  }    49          true      

데이터를 파일 'sampletable.txt'에 씁니다.

writetable(T,'sampletable.txt')

readtable을 사용하여 테이블 형식 데이터를 다시 읽어 들입니다. 기본적으로 MATLAB®은 공백이나 비ASCII 문자가 들어 있는 변수 이름을 유효한 MATLAB® 식별자로 변환합니다. 예를 들어, MATLAB®은 변수 이름 'Last Name''LastName'으로 변환하고 'Smoker (1 or 0)''Smoker_1or0_'으로 변환합니다. 변수 이름을 그대로 유지하면서 테이블 형식 데이터를 읽어 들이려면 'VariableNamingRule' 파라미터를 preserve로 설정하십시오.

T_preserve = readtable('sampletable.txt',"VariableNamingRule","preserve")
T_preserve=5×3 table
     Last Name     Age    Smoker (1 or 0)
    ___________    ___    _______________

    {'Sanchez'}    38            1       
    {'Johnson'}    43            0       
    {'Li'     }    38            1       
    {'Diaz'   }    40            0       
    {'Brown'  }    49            1       

기존 데이터가 있는 테이블의 맨 아래에 새 행으로 데이터를 추가합니다.

테이블을 만듭니다.

InsectSpecies = {'Monarch Butterfly';'Seven-spot Ladybird';'Orchid Mantis';...
    'American Bumblebee';'Blue Dasher Dragonfly'};
InsectOrder = {'Lepidoptera';'Coleoptera';'Mantodea';'Hymenoptera';'Odonata'};
InsectFamily = {'Nymphalidae';'Coccinellidae';'Hymenopodidae';...
    'Apidae';'Libellulidae'};
PredatoryInsect = logical([0;1;1;0;1]); 

T = table(InsectSpecies,InsectOrder,InsectFamily,PredatoryInsect)
T=5×4 table
          InsectSpecies            InsectOrder        InsectFamily       PredatoryInsect
    _________________________    _______________    _________________    _______________

    {'Monarch Butterfly'    }    {'Lepidoptera'}    {'Nymphalidae'  }         false     
    {'Seven-spot Ladybird'  }    {'Coleoptera' }    {'Coccinellidae'}         true      
    {'Orchid Mantis'        }    {'Mantodea'   }    {'Hymenopodidae'}         true      
    {'American Bumblebee'   }    {'Hymenoptera'}    {'Apidae'       }         false     
    {'Blue Dasher Dragonfly'}    {'Odonata'    }    {'Libellulidae' }         true      

테이블 T를 InsectCollection.txt라는 텍스트 파일에 씁니다.

writetable(T,'InsectCollection.txt','WriteRowNames',true) 

기존 테이블에 추가할 테이블 형식의 새 데이터를 만듭니다.

newInsect = table({'Red-banded leafhopper'},{'Hemiptera'},{'Cicadellidae'},logical([0]))
newInsect=1×4 table
              Var1                   Var2               Var3          Var4 
    _________________________    _____________    ________________    _____

    {'Red-banded leafhopper'}    {'Hemiptera'}    {'Cicadellidae'}    false

'WriteMode','Append' 이름-값 쌍의 인수를 사용하여 newInsectInsectCollection.txt에 추가합니다.

writetable(newInsect,'InsectCollection.txt','WriteMode','Append',...
    'WriteVariableNames',false,'WriteRowNames',true)  

작업 공간으로 테이블을 다시 읽어 들입니다.

readtable('InsectCollection.txt')
ans=6×4 table
          InsectSpecies            InsectOrder        InsectFamily       PredatoryInsect
    _________________________    _______________    _________________    _______________

    {'Monarch Butterfly'    }    {'Lepidoptera'}    {'Nymphalidae'  }           0       
    {'Seven-spot Ladybird'  }    {'Coleoptera' }    {'Coccinellidae'}           1       
    {'Orchid Mantis'        }    {'Mantodea'   }    {'Hymenopodidae'}           1       
    {'American Bumblebee'   }    {'Hymenoptera'}    {'Apidae'       }           0       
    {'Blue Dasher Dragonfly'}    {'Odonata'    }    {'Libellulidae' }           1       
    {'Red-banded leafhopper'}    {'Hemiptera'  }    {'Cicadellidae' }           0       

스프레드시트 파일 아래에 데이터를 추가할 때 파일의 기존 열 너비를 보존합니다.

텍스트 데이터를 사용하여 작업 공간 변수를 만든 다음 테이블을 변수에 대한 컨테이너로 만듭니다.

state = {'Massachussetts';'California';'Minnesota';'Virginia'};
stateFlower = {'Trailing arbutus';'Golden Poppy';'Pink and White Lady''s Slipper';'Flowering dogwood'};
stateBird = {'Black-capped chickadee';'California Valley Quail';'Common Loon';'Cardinal'};
data = table(state,stateFlower,stateBird);

테이블을 스프레드시트 파일 states_funfacts.xlsx에 씁니다.

writetable(data,'state_funfacts.xlsx')

텍스트 데이터로 구성된 테이블을 하나 더 만듭니다.

t = table({'Maryland';'New York'},{'Black-eyed Susan';'Rose'},{'Baltimore oriole';'Eastern bluebird'});

테이블을 기존 스프레드시트 파일에 추가합니다. 'AutoFitWidth'false로 지정하여 스프레드시트의 기존 열 너비를 보존합니다.

writetable(t,'state_funfacts.xlsx',"WriteMode","append","AutoFitWidth",false);

states_original.PNG

'AutoFitWidth'false가 아닌 true로 지정하면 writetable은 원래 열 너비를 보존하는 대신 쓰려는 데이터에 맞게 스프레드시트의 열 너비를 조정합니다.

states_appended.PNG

스프레드시트의 셀 서식을 보존하지 않고 기존 스프레드시트 파일 내의 행을 편집합니다.

스프레드시트 파일 student_grades.xlsx는 서식이 지정된 셀을 포함합니다. 모든 셀에는 색이 채워져 있고 테두리가 있으며 머리글 셀에는 굵은 글꼴을 사용합니다.

텍스트와 숫자형 데이터로 구성된 테이블을 만듭니다.

Student = {'Mary';'John'};
Grade = [95;87];
t = table(Student,Grade)
t=2×2 table
    Student     Grade
    ________    _____

    {'Mary'}     95  
    {'John'}     87  

입력 데이터 테이블로 기존 스프레드시트 파일을 업데이트합니다. 'PreserveFormat'false로 지정하여 스프레드시트 파일의 기존 셀 서식을 무시합니다. 이렇게 하면 student_grades.xlsx가 다음과 같이 수정됩니다.

writetable(t,'student_grades.xlsx','PreserveFormat',false);

기존 스프레드시트 파일에 데이터를 쓸 때 'PreserveFormat'false가 아닌 true로 지정하면 writetable은 스프레드시트의 기존 셀 서식을 보존합니다.

writetable(t,'student_grades.xlsx','PreserveFormat',true);

데이터 테이블을 만든 다음 XML 파일에 씁니다. 추가 이름-값 인수를 지정하여 writetable이 XML 파일에 테이블 데이터를 쓰는 방법을 사용자 지정합니다.

데이터 테이블을 만듭니다.

InsectSpecies = {'Monarch Butterfly';'Seven-spot Ladybird';'Orchid Mantis'; ...
    'American Bumblebee';'Blue Dasher Dragonfly'};
InsectOrder = {'Lepidoptera';'Coleoptera';'Mantodea';'Hymenoptera';'Odonata'};
InsectFamily = {'Nymphalidae';'Coccinellidae';'Hymenopodidae'; ...
    'Apidae';'Libellulidae'};
PredatoryInsect = logical([0;1;1;0;1]); 

T = table(InsectOrder,InsectFamily,PredatoryInsect);
T.Properties.RowNames = InsectSpecies;
head(T,5)
                               InsectOrder        InsectFamily       PredatoryInsect
                             _______________    _________________    _______________

    Monarch Butterfly        {'Lepidoptera'}    {'Nymphalidae'  }         false     
    Seven-spot Ladybird      {'Coleoptera' }    {'Coccinellidae'}         true      
    Orchid Mantis            {'Mantodea'   }    {'Hymenopodidae'}         true      
    American Bumblebee       {'Hymenoptera'}    {'Apidae'       }         false     
    Blue Dasher Dragonfly    {'Odonata'    }    {'Libellulidae' }         true      

테이블 TInsectCollection.xml이라는 XML 파일에 씁니다. 테이블 행의 이름을 쓰려면 'WriteRowNames'true로 지정합니다. 행 이름은 출력 XML 파일에서 Row 요소 노드에 속하는 필드로 나타납니다.

'RowNodeName'의 값으로 'Insect'를 지정하여 XML 파일에서 노드 이름을 사용자 정의합니다.

writetable(T,'InsectCollection.xml',"WriteRowNames",false,"RowNodeName","Insect")

InsectCollection.xml 파일의 내용을 표시합니다.

type InsectCollection.xml
<?xml version="1.0" encoding="UTF-8"?>
<table>
    <Insect>
        <InsectOrder>Lepidoptera</InsectOrder>
        <InsectFamily>Nymphalidae</InsectFamily>
        <PredatoryInsect>false</PredatoryInsect>
    </Insect>
    <Insect>
        <InsectOrder>Coleoptera</InsectOrder>
        <InsectFamily>Coccinellidae</InsectFamily>
        <PredatoryInsect>true</PredatoryInsect>
    </Insect>
    <Insect>
        <InsectOrder>Mantodea</InsectOrder>
        <InsectFamily>Hymenopodidae</InsectFamily>
        <PredatoryInsect>true</PredatoryInsect>
    </Insect>
    <Insect>
        <InsectOrder>Hymenoptera</InsectOrder>
        <InsectFamily>Apidae</InsectFamily>
        <PredatoryInsect>false</PredatoryInsect>
    </Insect>
    <Insect>
        <InsectOrder>Odonata</InsectOrder>
        <InsectFamily>Libellulidae</InsectFamily>
        <PredatoryInsect>true</PredatoryInsect>
    </Insect>
</table>

WriteRowNamestrue로 지정하지 않으면 writetable은 파일에 테이블 행 이름 쓰기를 건너뜁니다.

output.PNG

입력 인수

모두 축소

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

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

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

위치

형식

현재 폴더

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

예: 'myTextFile.csv'

다른 폴더

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

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

예: 'myFolder\myExcelFile.xlsx'

원격 위치

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

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

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

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

지원되는 모든 파일 형식

모두 축소

행 이름을 쓰기 위한 표시자로, 'WriteRowNames'와 함께 false 또는 true가 쉼표로 구분되어 지정됩니다.

표시자

동작

false

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

true

텍스트 및 스프레드시트 파일의 경우, writetableT의 행 이름을 출력값의 첫 번째 열로 포함시킵니다.

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

XML 파일의 경우, 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

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

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

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

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

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

  • .xml - XML 파일

예: 'FileType','spreadsheet'

데이터형: char | string

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

모두 축소

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

표시자

동작

true

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

false

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

쓰기 모드로, 'WriteMode'와 함께 문자형 벡터 또는 string형 스칼라가 쉼표로 구분되어 지정됩니다. 파일 형식에 따라 쓰기 모드를 선택합니다.

파일 형식

쓰기 모드

텍스트 파일

  • 'overwrite'(디폴트) — 파일을 덮어씁니다.

  • 'append' — 데이터를 파일에 추가합니다.

지정한 파일이 존재하지 않으면 쓰기 함수가 새 파일을 만들고 데이터를 새 파일에 씁니다.

스프레드시트 파일

  • 'inplace'(디폴트) — 입력 데이터가 점유하는 범위만 업데이트합니다. 쓰기 함수는 입력 데이터가 점유하는 범위 외의 데이터를 변경하지 않습니다.

    • 시트를 지정하지 않은 경우 첫 번째 시트에 씁니다.

  • 'overwritesheet' — 지정된 시트를 지우고 빈 시트에 입력 데이터를 씁니다.

    • 시트를 지정하지 않은 경우 쓰기 함수가 첫 번째 시트의 내용을 지우고 입력 데이터를 씁니다.

  • 'append' — 지정된 시트에서 점유 중인 범위의 맨 아래에 입력 데이터를 추가합니다.

    • 시트를 지정하지 않은 경우 첫 번째 시트에서 점유 중인 범위의 맨 아래에 입력 데이터를 추가합니다.

  • 'replacefile' — 파일에서 다른 시트를 모두 제거한 다음 지정된 시트를 지우고 입력 데이터를 씁니다.

    • 시트를 지정하지 않은 경우 파일에서 다른 모든 시트를 제거한 다음 첫 번째 시트의 내용을 지우고 입력 데이터를 씁니다.

    • 지정한 파일이 존재하지 않으면 쓰기 함수가 새 파일을 만들고 첫 번째 시트에 입력 데이터를 씁니다.

  • WriteVariableNamestrue로 설정된 경우, 쓰기 함수에서 쓰기 모드 'append'를 사용할 수 없습니다.

  • 스프레드시트 파일의 경우:

    • 쓰기 모드가 'append'인 경우, 쓰기 함수에서 Range 파라미터를 사용할 수 없습니다.

    • 지정한 파일이 존재하지 않으면 쓰기 함수가 'replacefile'과 동일한 동작을 수행합니다.

예: 'WriteMode','append'

데이터형: char | string

텍스트와 XML만 해당

모두 축소

파일과 연결된 문자 인코딩 체계로, 'Encoding'과 함께 'system' 또는 표준 문자 인코딩 체계 이름이 쉼표로 구분되어 지정됩니다. 인코딩을 지정하지 않은 경우, 쓰기 함수는 UTF-8을 사용하여 파일을 씁니다.

예: 'Encoding','UTF-8'은 UTF-8을 인코딩으로 사용합니다.

데이터형: char | string

텍스트 파일에만 해당

모두 축소

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

지정자

필드 구분 기호

','

'comma'

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

' '

'space'

공백

'\t'

'tab'

';'

'semi'

세미콜론

'|'

'bar'

세로 막대

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

예: 'Delimiter','space'

데이터형: char | string

따옴표로 묶인 텍스트를 쓸 것인지 여부를 나타내는 표시자로, "minimal", "all" 또는 "none"으로 지정됩니다.

  • QuoteStrings"minimal"이면 쓰기 함수는 구분 기호, 라인 끝 또는 큰따옴표 문자가 포함된 모든 변수를 큰따옴표로 묶습니다.

  • QuoteStrings"all"이면 쓰기 함수는 모든 텍스트, categorical형 변수, datetime형 변수, duration형 변수를 큰따옴표로 묶습니다.

  • QuoteStrings"none"이면 쓰기 함수는 변수를 큰따옴표로 묶지 않습니다.

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

스프레드시트 파일만 해당

모두 축소

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

데이터를 쓰려는 워크시트를 다음과 같이 이름 또는 인덱스로 지정합니다.

  • 이름 — 파일에 지정된 시트 이름이 존재하지 않으면 쓰기 함수는 이 워크시트 모음 끝에 새 시트를 추가합니다.

  • 인덱스 — 지정된 시트가 워크시트의 개수보다 큰 인덱스인 경우, 쓰기 함수는 통합 문서에 있는 워크시트의 개수가 시트 인덱스와 같아질 때까지 빈 시트를 추가합니다. 쓰기 함수는 새 워크시트가 추가되었음을 나타내는 경고도 생성합니다.

'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 사이에 있는 3×5 사각 범위를 나타냅니다. 'Range' 이름-값 쌍의 인수는 대/소문자를 구분하지 않으며 Excel A1 참조 스타일을 사용합니다(Excel 도움말 참조).

예: 'Range','D2:H4'

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

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

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

예: 'Range', 'A1:F10'

데이터형: char | string

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

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

  • true — 쓰기 함수가 파일을 쓸 때 Microsoft Excel 인스턴스를 시작합니다.

  • false — 쓰기 함수가 파일을 쓸 때 Microsoft Excel 인스턴스를 시작하지 않습니다. 이 모드에서 작업할 때 쓰기 기능은 파일 형식 지원과 수식이나 매크로 같은 대화형 기능 지원 면에서 다르게 동작합니다.

UseExcel

true

false

지원되는 파일 형식

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

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

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

아니요

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

비대화형 방식의 자동화 환경에서는 UseExcel이 지원되지 않습니다.

열 너비를 자동으로 조정할지 여부로, true 또는 false로 지정됩니다. 값을 0 또는 false로 지정할 경우 writetable 함수는 셀의 데이터에 맞게 자동으로 열 너비를 조정하지 않습니다.

예: 'AutoFitWidth',0

스프레드시트의 셀 서식을 보존할지 여부로, true 또는 false로 지정됩니다. false를 지정할 경우 writetable 함수는 스프레드시트의 셀 서식을 보존하지 않습니다. 서식에는 글꼴, 셀 테두리, 색이 적용된 셀 등이 포함됩니다.

datetime 데이터를 스프레드시트 파일에 쓰는 경우, 기존 셀 서식을 보존하려면 'PreserveFormat' 이름-값 쌍과 'UseExcel' 이름-값 쌍을 모두 true로 설정해야 합니다. datetime 데이터를 파일에 쓸 때 'UseExcel'false로 설정하고 'PreserveFormat'true로 설정할 경우, writetable 함수는 파일의 기존 셀 서식을 보존하지 않습니다.

예: 'PreserveFormat',false

XML 파일에만 해당

모두 축소

특성 접미사로, 'AttributeSuffix'와 함께 문자형 벡터 또는 string형 스칼라가 쉼표로 구분되어 지정되며, 입력 테이블의 어떤 변수 이름을 출력 XML 파일의 특성으로 쓸지 나타냅니다.

예를 들어, 입력 테이블에 변수 이름 AttName_att가 있을 경우 'AttributeSuffix','_att'를 지정하면 'AttName'을 출력 XML 파일의 특성으로 쓰도록 지정했음을 나타냅니다.

  • 'AttributeSuffix'를 지정하지 않으면 writetable은 기본적으로 출력 XML 파일의 특성으로 접미사 'Attribute'를 사용하여 변수를 씁니다.

  • 'AttributeSuffix' 값으로 지정된 특성이 입력 테이블의 변수 이름에 붙은 접미사와 일치하면 해당 접미사는 출력 XML 파일의 변수 이름에서 생략됩니다. 예를 들어, 'AttributeSuffix','_att'를 지정하면 MyField_att라는 입력 테이블의 변수는 XML 파일의 MyField라는 특성으로 대응됩니다.

예: 'AttributeSuffix','_att'

XML 행 노드 이름으로, 'RowNodeName'과 함께 문자형 벡터 또는 string형 스칼라가 쉼표로 구분되어 지정되며, 쓰기 함수가 입력 테이블의 행에 대응되는 노드 이름을 출력 XML 파일에 씁니다. RowNodeName을 지정하지 않으면 쓰기 함수는 출력 테이블의 행 노드 이름으로 'row'를 씁니다.

예: 'TableNodeName','RootName'

XML 루트 노드 이름으로, 'TableNodeName'과 함께 문자형 벡터 또는 string형 스칼라가 쉼표로 구분되어 지정되며, 쓰기 함수가 출력 XML 파일에 루트 노드 이름으로 씁니다. TableNodeName을 지정하지 않으면 쓰기 함수는 출력 테이블의 루트 노드 이름으로 'table'을 씁니다.

예: 'TableNodeName','RootName'

제한 사항

  • writetable은 중첩 테이블 쓰기를 지원하지 않습니다. 쓰기 전에, 중첩 테이블에서 splitvars를 사용하여 다중 열 변수를 단일 열 변수로 분할하십시오.

  • 스프레드시트 파일에서 빈 시트 만들기: writetable을 사용하여 빈 테이블을 써서 스프레드시트 파일에서 빈 시트를 만들 수 있습니다. 예를 들어 이름이 'MySheetName'인 빈 시트를 만들어 보겠습니다.

    writetable(table(),'empty.xls','Sheet','MySheetName')
    또는 이름이 'Sheet1', 'Sheet2', 'Sheet3'인 3개의 빈 시트를 만들어 보십시오.
     writetable(table(),'empty.xls','Sheet',3)

알고리즘

  • '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 날짜에 대한 자세한 내용은 Differences between the 1900 and the 1904 date system in Excel을 참조하십시오.

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

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

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

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

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

버전 내역

R2013b에 개발됨