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

Когда вам сохранят данные через несколько файлов электронной таблицы, используйте 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'            

Смотрите также

|

Похожие темы

Была ли эта тема полезной?