Filter löschen
Filter löschen

speed up xlsread

11 Ansichten (letzte 30 Tage)
ricco
ricco am 24 Nov. 2011
Kommentiert: farzad am 23 Mai 2020
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

Antworten (2)

Image Analyst
Image Analyst am 24 Nov. 2011

Karsten Reuß
Karsten Reuß am 5 Dez. 2017
Bearbeitet: Karsten Reuß am 5 Dez. 2017
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 Kommentar
farzad
farzad am 23 Mai 2020
>> 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

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by