2015-03-16 5 views
3

Я пытаюсь импортировать большой файл csv (215000X3) в партиях по 50. После осмотра я предложил людям использовать «textscan». Я сделал это с помощью следующего кодаMATLAB: импортировать очень большой файл в пакетах

N = 50; 
fid = fopen('PIDFile.csv'); 
formatSpec = '%s %s %s'; 
k=0; 
while ~feof(fid) 
    k = k+1; 
    block = textscan(fid, formatSpec, N, 'Delimiter',','); 
end 

После выполнения этой части кода, я получаю «блок» быть следующим:

34X1 cell 34X1 cell  34X1 cell 

импортируемый файл является обычным файлом CSV. Я смотрел на fread, fscan, csvread и т. Д., Но не сталкивался с примерами/sloutions, которые предлагают блокировать импорт. Любые предложения/комментарии были бы весьма признателен

Спасибо, H

+0

Если вы используете одну из последних версий MATLAB (например, R2014b), вы можете проверить «datastore», который поддерживает частичное чтение файлов CSV: http://www.mathworks.com/help/matlab/ import_export/read-and-analysis-data-in-a-tabulartextdatastore.html – scai

+0

Я использую R2014a, который, по-видимому, не имеет функции «datastore» в своей библиотеке. Благодарю. – hrshd

ответ

1

Ну что ж, все я должен был сделать:

block = cell2mat(textscan(fid, formatSpec, N, 'Delimiter',',')); 

и решить этот вопрос!