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