Performance: readTable versus xlsread

Dear Community,
I am reading the contents of an Excel Workbook (.xlsx) file. It's a pretty large, but not crazy file (approximately 26k rows-by-24 columns; 3MB). The data is a mixture of a text header (row 1) and the rest is a mixture of numbers and strings.
Until now, I've been using xlsread to process this file. According to the MATLAB documentation, xlsread is not recommended and I should consider readtable or readcell instead:
"The readtable, readmatrix, and readcell functions have these advantages over the xlsread function: Better cross-platform support and performance..."
In MATLAB 2019a for my Excel file, xlsread takes about 1.2 seconds to get the output; readtable takes about 12 seconds; readcell takes about 42 seconds.
It appears to me that xlsread is superior to the other two methods when it comes to speed. Hence my question: What is meant in the documentation by "Better cross-platform support and performance"? What is this performance measured relative to? I appreciate that readtable and readcell have various other advantages, so I understand their use cases. I'm wondering if there's anything obvious that I'm missing which could improve the performance?
I'm calling the methods in a very simple fashion:
[~, ~, csvData] = xlsread(filename);
csvData = readtable(filename);
csvData = readcell(filename);
Thanks,
Louis

1 Kommentar

Jeremy Hughes
Jeremy Hughes am 7 Jul. 2022
Interested if you've tried this is a recent MATLAB release. Or if you have a file that is running slowly, attach it. Then someone might be able to provide a better answer.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Abdolkarim Mohammadi
Abdolkarim Mohammadi am 28 Mär. 2021
Bearbeitet: Abdolkarim Mohammadi am 28 Mär. 2021

0 Stimmen

I don't know about the exact thing you mentioned, but I have experienced that when reading many matrixes from Excel (hence many calls to xlsread() or readmatrix()), the file with readmatrix() runs significantly faster than the same file but with xlsread().

1 Kommentar

fsgeek
fsgeek am 29 Mär. 2021
That sounds promising. Unfortunately, I can't use readmatrix because my data contains non-numeric cells.

Melden Sie sich an, um zu kommentieren.

Produkte

Version

R2019a

Gefragt:

am 27 Mär. 2021

Kommentiert:

am 7 Jul. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by