Чтение набора или последовательности файлов электронной таблицы

Когда у вас есть данные, хранящиеся в нескольких файлах электронной таблицы, используйте spreadsheetDatastore для управления и импорта данных. После создания datastore можно считать все данные из набора одновременно, а можно читать по одному файлу за раз.

Данные

Если папка C:\Data содержит набор файлов электронной таблицы, а затем захватывает местоположение данных в location. Данные, используемые в этом примере, содержат 10 файлы электронной таблицы, где каждый файл содержит 10 строки данных. Ваши результаты будут отличаться в зависимости от ваших файлов и данных.

location = 'C:\Data';
dir(location)
.           ..          File01.xls  File02.xls  File03.xls  File04.xls  File05.xls  File06.xls  File07.xls  File08.xls  File09.xls  File10.xls  

Создайте Datastore

Создайте datastore, используя расположение файлов.

ds = spreadsheetDatastore(location)
ds = 
  SpreadsheetDatastore with properties:

                      Files: {
                             'C:\Data\File01.xls';
                             'C:\Data\File02.xls';
                             'C:\Data\File03.xls'
                              ... and 7 more
                             }
   AlternateFileSystemRoots: {}
                     Sheets: ''
                      Range: ''

  Sheet Format Properties:
             NumHeaderLines: 0
          ReadVariableNames: true
              VariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
              VariableTypes: {'char', 'char', 'double' ... and 7 more}

  Properties that control the table returned by preview, read, readall:
      SelectedVariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
      SelectedVariableTypes: {'char', 'char', 'double' ... and 7 more}
                   ReadSize: 'file'

Чтение данных из Datastore

Используйте read или readall функций для импорта данных из datastore. Если данные из набора помещаются в памяти, то импортировать все это можно сразу с помощью readall функция.

allData = readall(ds);
size(allData)
ans = 1×2

   100    10

Также можно импортировать данные по одному файлу за раз с помощью read функция. Чтобы контролировать объем импортированных данных, перед вызовом read, отрегулируйте ReadSize свойство datastore. Можно задать ReadSize на 'file', 'sheet', или положительное целое число.

  • Если ReadSize является 'file', затем каждый вызов на read возвращает данные по одному файлу за раз.

  • Если ReadSize является 'sheet', затем каждый вызов на read возвращает данные по одному листу за раз.

  • Если ReadSize является положительным целым числом, затем каждый вызов в read возвращает количество строк, заданное в ReadSizeили меньше, если оно достигает конца данных.

ds.ReadSize = 'file';
firstFile = read(ds) % reads first file
firstFile=10×10 table
     LastName      Gender     Age             Location              Height    Weight    Smoker     Systolic    Diastolic    SelfAssessedHealthStatus
    __________    ________    ___    ___________________________    ______    ______    _______    ________    _________    ________________________

    'Smith'       'Male'      38     'County General Hospital'        71       176      'true'       124          93              'Excellent'       
    'Johnson'     'Male'      43     'VA Hospital'                    69       163      'false'      109          77              'Fair'            
    'Williams'    'Female'    38     'St. Mary's Medical Center'      64       131      'false'      125          83              'Good'            
    'Jones'       'Female'    40     'VA Hospital'                    67       133      'false'      117          75              'Fair'            
    'Brown'       'Female'    49     'County General Hospital'        64       119      'false'      122          80              'Good'            
    'Davis'       'Female'    46     'St. Mary's Medical Center'      68       142      'false'      121          70              'Good'            
    'Miller'      'Female'    33     'VA Hospital'                    64       142      'true'       130          88              'Good'            
    'Wilson'      'Male'      40     'VA Hospital'                    68       180      'false'      115          82              'Good'            
    'Moore'       'Male'      28     'St. Mary's Medical Center'      68       183      'false'      115          78              'Excellent'       
    'Taylor'      'Female'    31     'County General Hospital'        66       132      'false'      118          86              'Excellent'       

secondFile = read(ds) % reads second file
secondFile=10×10 table
     LastName      Gender     Age             Location              Height    Weight    Smoker     Systolic    Diastolic    SelfAssessedHealthStatus
    __________    ________    ___    ___________________________    ______    ______    _______    ________    _________    ________________________

    'Anderson'    'Female'    45     'County General Hospital'        68       128      'false'      114          77              'Excellent'       
    'Thomas'      'Female'    42     'St. Mary's Medical Center'      66       137      'false'      115          68              'Poor'            
    'Jackson'     'Male'      25     'VA Hospital'                    71       174      'false'      127          74              'Poor'            
    'White'       'Male'      39     'VA Hospital'                    72       202      'true'       130          95              'Excellent'       
    'Harris'      'Female'    36     'St. Mary's Medical Center'      65       129      'false'      114          79              'Good'            
    'Martin'      'Male'      48     'VA Hospital'                    71       181      'true'       130          92              'Good'            
    'Thompson'    'Male'      32     'St. Mary's Medical Center'      69       191      'true'       124          95              'Excellent'       
    'Garcia'      'Female'    27     'VA Hospital'                    69       131      'true'       123          79              'Fair'            
    'Martinez'    'Male'      37     'County General Hospital'        70       179      'false'      119          77              'Good'            
    'Robinson'    'Male'      50     'County General Hospital'        68       172      'false'      125          76              'Good'            

См. также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте