speed up xlsread

10 次查看(过去 30 天)
ricco
ricco 2011-11-24
评论: farzad 2020-5-23
I have imported data from excel into matlab where I have several spreadsheets. I have used:
files = dir('*.xls');
%read data from excel into matlab
for i=1:length(files);
File_Name{i}=files(i,1).name;%Removes the file names from 'files'
[num{i},txt,raw] = xlsread(File_Name{i},'Ble min');
end
So, each cell refers to each spreadsheet. Is there a quicker way of doing this? I heard actxserver could be used, would this be the case for me here?
thanks

回答(2 个)

Image Analyst
Image Analyst 2011-11-24

Karsten Reuß
Karsten Reuß 2017-12-5
编辑:Karsten Reuß 2017-12-5
Small update on this one:
In versions of Matlab newer than 2013, readtable is much faster. I had some 300 files to import, xlsread took about 300 seconds, with actxserver about 100 seconds and with readtable 3 seconds.
You can then use table2cell, table2array, etc. to convert your data into cells and doubles.
  1 个评论
farzad
farzad 2020-5-23
>> tic;xls=xlsread(fname);toc;
Elapsed time is 2.230238 seconds.
>> tic;rdt= readtable(fname);toc;
Elapsed time is 2.156550 seconds.
>> tic;rdt= readmatrix(fname);toc;
Elapsed time is 2.511168 seconds.
It was a 14336 x 7 xlsx file. all numbers

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by