Если данные хранятся в нескольких текстовых файлах, их можно использовать 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 filesecondFile=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'
readcell | readmatrix | readtable | readtimetable | readvars | tabularTextDatastore