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

spreadsheetDatastore

스프레드시트 파일용 데이터저장소

설명

메모리에 맞지 않을 수 있는 대규모 스프레드시트 파일 모음을 관리하기 위해 SpreadsheetDatastore 객체를 사용합니다. spreadsheetDatastore 함수를 사용하여 SpreadsheetDatastore 객체를 만들고 그 속성을 지정한 다음, 객체 함수를 사용하여 데이터를 가져올 수 있습니다.

생성

구문

ssds = spreadsheetDatastore(location)
ssds = spreadsheetDatastore(location,Name,Value)

설명

예제

ssds = spreadsheetDatastore(location)location으로 지정된 데이터 모음에서 스프레드시트 데이터저장소를 만듭니다.

ssds = spreadsheetDatastore(location,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 ssds에 대한 추가 파라미터와 속성을 지정합니다. 예를 들어, spreadsheetDatastore(location,'FileExtensions',{'.xlsx','.xls'})는 파일 확장자에 따라 어떤 파일을 데이터저장소에 포함할지 지정합니다.

입력 인수

모두 확장

데이터저장소에 포함할 파일 또는 폴더로, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 스칼라 또는 string형 배열로 지정됩니다. 파일이 현재 폴더에 없는 경우 location은 전체 경로나 상대 경로여야 합니다. 지정된 폴더의 하위 폴더 내에 있는 파일은 데이터저장소에 자동으로 포함되지 않습니다. 지원되는 파일 확장자는 .xls, .xlsx, .xlsm, .xltx, .xltm입니다.

location을 지정할 때에는 와일드카드 문자(*)를 사용할 수 있습니다. 이 문자는 모든 일치하는 파일 또는 일치하는 폴더의 모든 파일을 데이터저장소에 포함하도록 지정합니다.

location이 폴더를 나타내는 경우 데이터저장소는 지원되는 스프레드시트 파일 형식만 포함하며 다른 형식은 무시합니다.

예: 'file1.xlsx'

예: '../dir/data/file1.xlsx'

예: {'C:\dir\data\file1.xlsx','C:\dir\data\file2.xlsx'}

예: 'C:\dir\data\*.xls'

데이터형: char | cell | string

이름-값 쌍의 인수

예: ssds = spreadsheetDatastore('C:\dir\spreadsheetdata','FileExtensions',{'.xls','.xlsm'})

하위 폴더 포함 플래그로, 'IncludeSubfolders'와 함께 true, false, 0, 1 중 하나가 쉼표로 구분되어 지정됩니다. 각 폴더 내에 있는 모든 파일과 하위 폴더를 포함하려면 true를 지정하고, 각 폴더 내에 있는 파일만 포함하려면 false를 지정하십시오.

'IncludeSubfolders'를 지정하지 않은 경우, 디폴트 값은 false입니다.

예: 'IncludeSubfolders',true

데이터형: logical | double

스프레드시트 파일 확장자로, 'FileExtensions'와 함께 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 스칼라 또는 string형 배열이 쉼표로 구분되어 지정됩니다.

  • 'FileExtensions'를 지정하지 않으면 spreadsheetDatastore는 지정된 경로에서 .xls, .xlsx, .xlsm, .xltx, .xltm 확장자가 있는 모든 파일을 자동으로 포함합니다.

  • SpreadsheetDatastore에 표준이 아닌 파일 확장자가 있는 스프레드시트를 포함하려면 이러한 확장자를 명시적으로 지정하십시오.

  • 확장자가 없는 파일을 위한 SpreadsheetDatastore를 생성하려면 'FileExtensions'를 빈 문자형 벡터 ''로 지정하십시오.

예: 'FileExtensions',''

예: 'FileExtensions','.xls'

예: 'FileExtensions',{'.xlsx','.xlsm'}

데이터형: char | cell | string

파일 시스템 루트 경로의 대체 경로로, 'AlternateFileSystemRoots'와 함께 string형 벡터 또는 셀형 배열이 쉼표로 구분되어 지정됩니다. 로컬 컴퓨터에 데이터저장소를 만들지만 다른 컴퓨터(다른 운영 체제의 컴퓨터일 수 있음)의 데이터에 액세스하고 이를 처리해야 하는 경우 'AlternateFileSystemRoots'를 사용합니다. 또한, PCT(Parallel Computing Toolbox™)와 MATLAB® Distributed Computing Server™를 사용하여 데이터를 처리하고, 처리한 데이터를 다른 플랫폼 클라우드 또는 다른 클러스터 컴퓨터에 있는 데이터의 복사본과 함께 로컬 컴퓨터에 저장할 경우 'AlternateFileSystemRoots'를 사용하여 루트 경로를 연결해야 합니다.

  • 실질적으로 서로 동일한 루트 경로들의 집합을 연결하려면 'AlternateFileSystemRoots'를 string형 벡터로 지정하십시오. 예를 들면 다음과 같습니다.

    ["Z:\datasets","/mynetwork/datasets"]

  • 데이터저장소에 대한 실질적으로 동일한 여러 루트 경로의 집합을 여러 개 연결하려면 'AlternateFileSystemRoots'를 여러 행이 포함된 셀형 배열로 지정하십시오. 여기서 각 행은 실질적으로 동일한 루트 경로들의 집합 하나를 나타냅니다. 셀형 배열의 각 행을 string형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정합니다. 예를 들면 다음과 같습니다.

    • 'AlternateFileSystemRoots'를 string형 벡터로 구성된 셀형 배열로 지정합니다.

      {["Z:\datasets", "/mynetwork/datasets"];...
       ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}

    • 또는 'AlternateFileSystemRoots'를 문자형 벡터로 구성된 셀형 배열로 지정합니다.

      {{'Z:\datasets','/mynetwork/datasets'};...
       {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}

'AlternateFileSystemRoots'의 값은 다음 조건을 충족해야 합니다.

  • 하나 이상의 행을 포함합니다. 여기서 각 행은 실질적으로 동일한 여러 루트 경로를 지정합니다.

  • 각 행은 여러 개의 루트 경로를 지정하고, 각 루트 경로는 적어도 두 개의 문자를 포함해야 합니다.

  • 루트 경로는 고유하며 서로의 하위 폴더가 아닙니다.

  • 파일의 위치를 가리키는 적어도 하나의 루트 경로 항목을 포함합니다.

자세한 내용은 Set Up Datastore for Processing on Different Machines or Clusters 항목을 참조하십시오.

예: ["Z:\datasets","/mynetwork/datasets"]

데이터형: string | cell

텍스트 변수의 출력 데이터형으로, 'TextType'과 함께 'char'이나 'string'이 쉼표로 구분되어 지정됩니다.

  • read, readall, preview 함수 중 하나의 출력 테이블에 텍스트 변수가 포함된 경우 'TextType'은 이러한 변수의 데이터형을 지정합니다.

  • 'TextType''char'인 경우 출력값은 문자형 벡터로 구성된 셀형 배열입니다.

  • 'TextType''string'인 경우 출력값은 string형입니다.

데이터형: char | string

이 이름-값 쌍 외에도, 이 페이지의 모든 속성을 이름-값 쌍으로 지정할 수 있습니다. 단, Files 속성은 제외됩니다.

속성

모두 확장

SpreadsheetDatastore 속성은 datastore 객체에 있는 파일의 형식을 설명하고, 데이터저장소에서 데이터를 읽는 방식을 제어합니다. datastore 객체를 만들 때 이름-값 쌍 인수를 사용하여 SpreadsheetDatastore 속성의 값을 지정할 수 있습니다. 단, Files 속성은 제외됩니다. 객체를 만든 후 속성을 보거나 수정하려면 점 표기법을 사용하십시오.

파일 속성

데이터저장소에 포함된 파일로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 확인됩니다. 여기서 각 문자형 벡터 또는 string형은 파일에 대한 전체 경로입니다. spreadsheetDatastoredatastore 함수의 location 인수는 이러한 파일을 정의합니다.

셀형 배열에 지정된 첫 번째 파일은 데이터저장소의 모든 파일에 대한 변수 이름과 형식 정보를 지정합니다.

예: {'C:\dir\data\file1.xls';'C:\dir\data\file2.xls'}

데이터형: cell | string

읽을 때 각 시트의 시작 부분에서 건너뛸 라인 수로, 양의 정수로 지정됩니다. Range 속성도 지정할 경우, NumHeaderLines는 지정된 데이터 블록의 시작 부분에서 건너뛸 라인 수입니다.

데이터형: double

파일 내 시트로, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 스칼라, 시트 이름이 포함된 string형 배열 또는 시트 인덱스로 구성된 숫자형 벡터로 지정됩니다. 빈 문자형 벡터 ''는 파일 내의 모든 시트가 포함됨을 나타냅니다.

예: {'sheet1','sheet7'}

예: [3 5 7]

데이터형: char | cell | string | double

행과 열 범위로, 시트 내 데이터의 사각형 블록을 정의하는 문자형 벡터 또는 string형 스칼라로 지정됩니다. 빈 문자형 벡터 ''는 범위가 파일의 시작과 데이터의 끝임을 나타냅니다.

예: 'B1:T7'

예: 'A:C'

데이터형: char | string

데이터저장소에 있는 첫 번째 파일의 첫 번째 행을 변수 이름으로 읽을지 여부를 나타내는 표시자로, true(1) 또는 false(0)로 지정됩니다.

  • true인 경우 첫 번째 파일에 있는, 제목이 아닌 첫 번째 행은 데이터에 대한 변수 이름을 지정합니다.

  • false인 경우 첫 번째 파일에 있는, 제목이 아닌 첫 번째 행은 데이터의 첫 번째 행을 포함합니다. 디폴트 변수 이름은 Var1, Var2 등으로 할당됩니다.

데이터형: logical | double

데이터저장소에 있는 변수 이름으로, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 스칼라 또는 string형 배열로 지정됩니다. 파일에 나타나는 순서대로 변수 이름을 지정하십시오. 변수 이름을 지정하지 않으면 데이터저장소의 첫 번째 파일에 있는, 제목이 아닌 첫 번째 라인에서 변수 이름이 검색됩니다. VariableNames를 문자형 벡터 또는 string형 스칼라로 지정할 수 있으나, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 자동 변환됩니다. VariableNames 속성을 수정할 경우, 새 변수 이름의 개수는 원본 변수 이름의 개수와 일치해야 합니다.

ReadVariableNamesfalse인 경우 VariableNames는 디폴트 값 {'Var1','Var2', ...}로 설정됩니다.

예: {'Time','Date','Quantity'}

데이터형: char | cell | string

데이터를 읽을 때 각 변수의 유형을 나타내는 변수 유형으로, 'double', 'char', 'string', 'categorical' 또는 'datetime'으로 지정됩니다.

변수 유형의 목록은 VariableNames에 있는 변수에 대응합니다. 유형 double, char, datetime은 데이터에서 자동으로 검색될 수 있습니다. VariableTypes를 문자형 벡터 또는 string형 스칼라로 지정할 수 있으나, spreadsheetDatastore에서 자동으로 이를 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 변환합니다.

예: {'char','categorical'}

데이터형: char | cell | string

preview, read, readall 테이블에 대한 속성

파일에서 읽을 변수로, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 스칼라 또는 string형 배열로 지정됩니다. 각 문자형 벡터 또는 string형에는 변수 하나의 이름이 포함됩니다. 변수 이름은 임의의 순서로 지정할 수 있습니다. SelectedVariableNames를 문자형 벡터 또는 string형 스칼라로 지정할 수 있으나, spreadsheetDatastore에서 자동으로 이를 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 변환합니다.

예: {'Var3','Var7','Var4'}

데이터형: char | cell | string

데이터를 읽을 때 선택된 각 변수의 유형을 나타내는 선택된 변수 유형으로, 'double', 'char', 'string', 'categorical' 또는 'datetime'으로 지정됩니다. 변수 유형의 목록은 SelectedVariableNames에 있는 변수에 대응합니다. 유형 double, char, datetime은 데이터에서 자동으로 검색될 수 있습니다. SelectedVariableTypes를 문자형 벡터 또는 string형 스칼라로 지정할 수 있으나, 이는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 자동 변환됩니다.

예: {'double','datetime'}

데이터형: char | cell | string

read 함수 호출 시 읽을 데이터의 양으로, 'file'이나 'sheet' 또는 양의 정수 스칼라로 지정됩니다.

  • ReadSize'file'이면 read를 호출할 때마다 한 번에 한 파일의 모든 데이터를 읽습니다.

  • ReadSize'sheet'이면 read를 호출할 때마다 한 번에 한 시트의 모든 데이터를 읽습니다.

  • ReadSize가 양의 정수이면 read를 호출할 때마다 ReadSize로 지정한 만큼의 행을 읽습니다. 또는 데이터의 끝에 도달할 경우 더 적은 행을 읽습니다.

ReadSize를 정수 스칼라에서 'file' 또는 'sheet'로 변경하거나 이와 반대로 변경할 경우, 데이터저장소는 reset 함수를 사용하여 재설정됩니다.

데이터형: char | string | double

객체 함수

hasdata데이터를 읽을 수 있는지 확인
numpartitions데이터저장소 파티션 개수
partition데이터저장소 파티셔닝
preview데이터저장소에 있는 데이터의 서브셋
read데이터저장소의 데이터 읽어 들이기
readall데이터저장소의 모든 데이터 읽기
reset데이터저장소를 초기 상태로 재설정
sheetnames데이터저장소에서 시트 이름 쿼리

예제

모두 축소

ssds = datastore('airlinesmall_subset.xlsx')
ssds = 

  SpreadsheetDatastore with properties:

                      Files: {
                             ' ...\matlab\toolbox\matlab\demos\airlinesmall_subset.xlsx'
                             }
                     Sheets: ''
                      Range: ''

  Sheet Format Properties:
             NumHeaderLines: 0
          ReadVariableNames: true
              VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
              VariableTypes: {'double', 'double', 'double' ... and 26 more}

  Properties that control the table returned by preview, read, readall:
      SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
      SelectedVariableTypes: {'double', 'double', 'double' ... and 26 more}
                   ReadSize: 'file'

파일 airlinesmall_subset.xlsx를 포함하는 SpreadsheetDatastore 객체를 만듭니다.

ssds = spreadsheetDatastore('airlinesmall_subset.xlsx')
ssds = 

  SpreadsheetDatastore with properties:

                      Files: {
                             ' ...\matlab\toolbox\matlab\demos\airlinesmall_subset.xlsx'
                             }
                     Sheets: ''
                      Range: ''

  Sheet Format Properties:
             NumHeaderLines: 0
          ReadVariableNames: true
              VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
              VariableTypes: {'double', 'double', 'double' ... and 26 more}

  Properties that control the table returned by preview, read, readall:
      SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
      SelectedVariableTypes: {'double', 'double', 'double' ... and 26 more}
                   ReadSize: 'file'

파일의 시트 이름을 표시합니다. 이 파일에는 연도당 하나의 시트가 포함되어 있습니다.

sheetnames(ssds,1)
ans = 

  Columns 1 through 7

    '1996'    '1997'    '1998'    '1999'    '2000'    '2001'    '2002'

  Columns 8 through 13

    '2003'    '2004'    '2005'    '2006'    '2007'    '2008'

두 번째 시트에서 원하는 데이터로 변수 FlightNum을 지정하고 처음 8개 행을 미리 봅니다.

ssds.Sheets = 2;
ssds.SelectedVariableNames = 'FlightNum';
preview(ssds)
ans = 

    FlightNum
    _________

    1014     
    1201     
     702     
    1184     
    1310     
    1759     
    1242     
    1558     

첫 번째 시트에서 변수 DepTimeArrTime에 대한 처음 3개 행만 읽습니다.

ssds.ReadSize = 3;
ssds.Sheets = 1;
ssds.SelectedVariableNames = {'DepTime','ArrTime'};
read(ssds)
ans = 

    DepTime    ArrTime
    _______    _______

    2117       2305   
    1252       1511   
    1441       1708   

시트 4, 5, 6에 대해서는 모든 행을 읽습니다.

ssds.Sheets = 4:6;
readall(ssds);

대안

datastore 함수를 사용하여 SpreadsheetDatastore 객체를 만들 수도 있습니다. 예를 들어, ds = datastore(location,'Type','spreadsheet')location으로 지정된 파일 모음에서 데이터저장소를 만듭니다.

R2016a에 개발됨