Когда ваши данные хранятся через несколько текстовых файлов, можно использовать 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
Создайте datastore с помощью местоположения файлов.
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
Считайте данные из Datastore
Используйте read
или функции readall
, чтобы импортировать данные от datastore. Если данные из набора помещаются в память, можно импортировать все это целиком использование функции readall
.
allData = readall(ds); size(allData)
ans = 1×2
100 10
Также импортируйте данные один файл во время с помощью функции read
. Чтобы управлять импортированным объемом данных, прежде чем вы вызовете чтение, настраивают свойство ReadSize
datastore. Установите 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'
readcell
| readmatrix
| readtable
| readtimetable
| readvars
| tabularTextDatastore