exponenta event banner

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

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

Данные

Если папка 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  

Создание хранилища данных

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

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'

Считывание данных из хранилища данных

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

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

   100    10

Кроме того, можно импортировать данные по одному файлу за один раз с помощью read функция. Для управления объемом импортированных данных перед вызовом read, отрегулируйте ReadSize свойства хранилища данных. Можно установить 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'            

См. также

|

Связанные темы