exponenta event banner

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

Если данные хранятся в нескольких текстовых файлах, их можно использовать tabularTextDatastore для управления данными и их импорта. В этом примере показано, как использовать tabularTextDatastore считывание данных из коллекции текстовых файлов или одновременное считывание одного файла.

Данные

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

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

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

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

ds = tabularTextDatastore(location)
ds = 
  TabularTextDatastore with properties:

                      Files: {
                             'C:\DataTxt\File01.csv';
                             'C:\DataTxt\File02.csv';
                             'C:\DataTxt\File03.csv'
                              ... and 7 more
                             }
               FileEncoding: 'UTF-8'
   AlternateFileSystemRoots: {}
          ReadVariableNames: true
              VariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
             DatetimeLocale: en_US

  Text Format Properties:
             NumHeaderLines: 0
                  Delimiter: ','
               RowDelimiter: '\r\n'
             TreatAsMissing: ''
               MissingValue: NaN

  Advanced Text Format Properties:
            TextscanFormats: {'%q', '%q', '%f' ... and 7 more}
                   TextType: 'char'
         ExponentCharacters: 'eEdD'
               CommentStyle: ''
                 Whitespace: ' \b\t'
    MultipleDelimitersAsOne: false

  Properties that control the table returned by preview, read, readall:
      SelectedVariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
            SelectedFormats: {'%q', '%q', '%f' ... and 7 more}
                   ReadSize: 20000 rows

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

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

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

   100    10

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

  • Если ReadSize является 'file', затем каждый вызов 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'            

См. также

| | | | |

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