Main Content

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

writematrix

파일에 행렬 쓰기

설명

writematrix(A)는 쉼표로 구분된 텍스트 파일에 동종 배열 A를 씁니다. 파일 이름은 배열의 작업 공간 변수 이름으로, 확장자 .txt가 추가됩니다. writematrix는 배열 이름에서 파일 이름을 생성할 수 없는 경우, 파일 matrix.txt에 씁니다.

A에 있는 변수의 각 열은 출력 파일의 열이 됩니다. writematrix 함수는 기존 파일을 덮어씁니다.

예제

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

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

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

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

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

예제

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

예제

예제

모두 축소

행렬을 만들어 쉼표로 구분된 텍스트 파일에 쓴 다음 다른 구분 기호 문자를 사용하여 다른 텍스트 파일에 행렬을 씁니다.

작업 공간에서 행렬을 만듭니다.

M = magic(5)
M = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

행렬을 쉼표로 구분된 텍스트 파일에 쓰고 파일 내용을 표시합니다. writematrix 함수가 텍스트 파일 M.txt를 출력합니다.

writematrix(M)
type 'M.txt'
17,24,1,8,15
23,5,7,14,16
4,6,13,20,22
10,12,19,21,3
11,18,25,2,9

다른 구분 기호 문자를 사용하는 텍스트 파일에 동일한 행렬을 쓰려면 'Delimiter' 이름-값 쌍을 사용하십시오.

writematrix(M,'M_tab.txt','Delimiter','tab')
type 'M_tab.txt'
17	24	1	8	15
23	5	7	14	16
4	6	13	20	22
10	12	19	21	3
11	18	25	2	9

행렬을 만들어 스프레드시트 파일에 쓴 다음 파일 내용을 읽고 표시합니다.

작업 공간에서 행렬을 만듭니다.

M = magic(5)
M = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

스프레드시트 파일에 행렬을 씁니다.

writematrix(M,'M.xls')

M.xls에서 행렬을 읽고 표시합니다.

readmatrix('M.xls')
ans = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

행렬을 만들어 스프레드시트 파일의 지정된 시트 및 범위에 씁니다.

작업 공간에서 행렬을 만듭니다.

M = magic(5)
M = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

M.xls의 두 번째 워크시트에서 세 번째 행부터 시작하여 행렬을 씁니다.

writematrix(M,'M.xls','Sheet',2,'Range','A3:E8')

행렬을 읽고 표시합니다.

readmatrix('M.xls','Sheet',2,'Range','A3:E8')
ans = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

스프레드시트에서 기존 데이터 아래에 데이터 배열을 추가합니다.

작업 공간에서 두 개의 행렬을 만듭니다.

M1 = magic(5)
M1 = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

M2 = [5 10 15 20 25; 30 35 40 45 50]
M2 = 2×5

     5    10    15    20    25
    30    35    40    45    50

행렬 M1을 스프레드시트 파일 M.xls에 씁니다.

writematrix(M1,'M.xls')

스프레드시트 파일에서 기존 데이터 아래에 행렬 M2의 데이터를 추가합니다.

writematrix(M2,'M.xls','WriteMode','append')

스프레드시트 파일을 읽고 행렬을 표시합니다.

readmatrix('M.xls')
ans = 7×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9
     5    10    15    20    25
    30    35    40    45    50

텍스트 파일에서 기존 데이터 아래에 데이터 배열을 추가합니다.

작업 공간에서 두 개의 행렬을 만듭니다.

fibonacci1 = [1 1 2 3; 5 8 13 21; 34 55 89 144]
fibonacci1 = 3×4

     1     1     2     3
     5     8    13    21
    34    55    89   144

fibonacci2 = [233 377 610 987]
fibonacci2 = 1×4

   233   377   610   987

행렬 fibonacci1을 텍스트 파일 fibonacci.txt에 씁니다.

writematrix(fibonacci1,'fibonacci.txt')

텍스트 파일에서 기존 데이터 아래에 fibonacci2의 데이터를 추가합니다.

writematrix(fibonacci2,'fibonacci.txt','WriteMode','append')

텍스트 파일을 읽고 행렬을 표시합니다.

readmatrix('fibonacci.txt')
ans = 4×4

     1     1     2     3
     5     8    13    21
    34    55    89   144
   233   377   610   987

입력 인수

모두 축소

입력 데이터로, 행렬로 지정됩니다.

파일 이름으로, 문자형 벡터 또는 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을 따옴표로 묶으십시오.

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

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

모두 축소

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

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

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

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

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

예: 'FileType','spreadsheet'

데이터형: char | string

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

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

예: 'DateLocale','ja_JP'

데이터형: char | string

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

파일 형식

쓰기 모드

텍스트 파일

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

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

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

스프레드시트 파일

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

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

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

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

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

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

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

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

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

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

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

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

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

예: 'WriteMode','append'

데이터형: 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 이름-값 인수는 구분된 텍스트 파일에만 사용할 수 있습니다.

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

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

데이터형: char | string

스프레드시트 파일만 해당

모두 축소

테이블을 쓰려는 워크시트로, '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로 지정할 경우 writematrix 함수는 셀의 데이터에 맞게 자동으로 열 너비를 조정하지 않습니다.

예: 'AutoFitWidth',0

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

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

예: 'PreserveFormat',false

제한 사항

writematrix는 희소 행렬을 지원하지 않습니다.

알고리즘

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

    • writematrixlong g 형식을 사용하여 숫자형 데이터를 쓰고 categorical형 또는 문자형 데이터를 따옴표 없는 텍스트로 쓰는 경우.

    • writematrix가 3차원 이상의 배열을 2차원 배열로 써서 후행 차원이 축소되는 경우.

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

버전 내역

R2019a에 개발됨