Muse Monitor MATLAB data import

For anyone interested in importing data from Muse Monitor to MATLAB, I now have a new FAQ section on the Muse Monitor website for MATLAB, with a script to import the data in one step.

mmImport.m - Will will import into two separate tables, one for the main data museData and one for the elements such as blinks, jaw clenches and other markers museElements.

mmPlotAve.m - Will plot the average brain waves, so you can check your data imported correctly.

I’d like to thank Anna Ruskin at the University of Chicago for her help with testing these :slight_smile:


Fantastic, thank you for this great work. I am considering to use MuseMonitor for an academic research project and have been able to use the Import script on a test file. Looking at the results I do have a question pertaining to the way that MuseElements are registered which I hope to get your input on:
My .csv test file has 388651 rows excluding header, 415 of which are ‘muse elements’ and therefore otherwise empty. Now I wonder if the muse elements are registered on top of the 256 samples per second, or replace one (or more?) of those samples?
I’m asking, because at a sampling rate of 256 Hertz, 388651 datapoints should correspond to 388651/256 = 1518.17 seconds. The distance between the first and last TimeStamps however is 1537.27 seconds, which seems a bit far off?! Our pessimistic guess was that the empty element rows actually remove more than one sample, which would of course mess pretty badly with the temporal structure of the data.
On a side note, the online chart from the same file ( indicates “Chart Complete: 388653 data points. 1516 seconds”, which is very similar to the Matlab import, only the two new datapoints were a surprise!
I very much appreciate your help and great work with muse monitor!

The online chart just gives you a count of rows of text in the CSV file, so you’ll get two extra, one for the header info and another for the blank line at the bottom. I’ll note that on my fix list! :wink:

Regarding the data, the elements data is in addition to the raw data.

As to the first/last entry time difference, I’m not 100% sure. In constant recording mode Muse Monitor writes out the raw eeg data as soon as it gets it from the Muse. It’s know that there is a noticeable clumping together of the timestamps and this is due to bluetooth packet buffering processing data in small sets as it comes from the Muse… but I don’t think I’ve fully tested to see how accurate the Muse is to the advertised 256hz data rate. It’s possible that it is just an approximate rate.