Reading large CSV files with MATLAB

Reading very large CSV files in MATLAB can be extremely slow and may even cause MATLAB to freeze or crash.

A few weeks ago I was trying to read a CSV file of ~300MB, and it took forever to load although I have a fairly good laptop (i7-3537U, 8GB RAM, etc). In my search for faster ways to load, I found a script which I believe was written by Stanisław Adaszewski. Unfortunately, his website ALGOHolic seems to be down, and I haven’t been able to find other places to download his script. I have therefore decided to share his unaltered work. Usage:

quote = '"';
sep = ';';
escape = '\';
[numbers, text] = swallow_csv(filename, quote, sep, escape);

The attached archive contains compiled MEXW64 version. For other OS/architecture you need to:
mex swallow_csv.cpp

No Comments

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Code examples
Live digital donation signature wall (source code included)

I was recently involved in an non-profit related event, where guests could participate in a lottery and win prices. To make the event more interesting, when someone either digitally or physically donated money, their name would appear/update on a large TV-screen. If they had already donated money, their name would …

Code examples
Reading XML files in matlab

Reading XML files in MATLAB has yet to become user friendly as it already is in other object-oriented programming languages. The most confusing thing is that objects appear to be empty or NULL when you access variables in MATLAB. So I decided to put up a simple code example that …