<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">We have a in-house beta version of EEGLAB (EEGLAB 12) that is fully memory mapped meaning that you can process very large files with little memory. If you use BIOSIG for example, the function will read the data file one channel at a time (as Alois mentioned) and resave the data on disk. It is slower but at least it should allow to remove most memory error problems.<div><br></div><div>Beta release (EEGLAB 12) probably this month.<br><div><br></div><div>Arno<div><br><div><div>On Sep 4, 2012, at 4:41 AM, Yuan-fang Chou wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">When you change data from double to single precision before loading,it seems better for you to re-change inversely before running ICA,as ICA can do its best under double precision condition.<br><br><div class="gmail_quote">
2012/8/30 Alois Schloegl <span dir="ltr"><<a href="mailto:alois.schloegl@ist.ac.at" target="_blank">alois.schloegl@ist.ac.at</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The biosig interface has multiple option to address this problem.<br>
You can read only specified channels, and/or segments, and output the<br>
data as single type.<br>
<br>
<br>
% select limited list of channels with CHANLIST,<br>
% return data as single<br>
HDR = sopen(filename,CHANLIST,'OUTPUT:SINGLE');<br>
<br>
% read segment of length duration<br>
duration = 1;   % segment lenght<br>
for k = 0:duration:NRrec*HDR.SPR/HDR.SampleRate,<br>
        [dat, HDR] = sread(HDR, duration, start);<br>
end;<br>
<br>
% do not forget to close the file<br>
HDR = sclose(HDR);<br>
<div class="im"><br>
<br>
<br>
On 08/29/12 20:09, ANDREW HILL wrote:<br>
> I would suggest downsampling first - 512 Hz (2 ms resolution in an ERP) should be fine, if that's sufficient for your needs.<br>
><br>
> That'll speed things up remarkably :)  You can use "Decimator" from Biosemi to do this before you import, if you want.<br>
><br>
> Also, I tend to use "Converter" to move BDF files into EDF+ format before importing into Matlab.  This essentially applies a 0.016 Hz highpass filter, discarding the DC offset and making much smaller files.<br>

><br>
> Lastly, your CPU and operating system both need to be 64-bit versions (as does your Matlab) if you want to ever be able to use more than 2GB of RAM - I'm assuming you are running out of RAM even with a lot of it and 64-bit, but just in case that's another gotcha.<br>

><br>
><br>
><br>
> Best,<br>
><br>
> andrew<br>
><br>
><br>
><br>
><br>
> On Today 12:49 AM, <a href="mailto:davidebaldo84@gmail.com">davidebaldo84@gmail.com</a> wrote:<br>
><br>
> Dear all,<br>
</div>> Lately I have been working with an EEG dataset containing 64 channels (sampling rate: 2048Hz, Biosemi data).When importing the data into Matlab (via pop_readbdf function) I experience two problems:<br>
> 1. It takes a lot of time to load and afterwards the pc became extremely slow (I assume that is because of the huge amount of  RAM needed)2. Sometimes the pc run out of memory<br>
<div class="im">><br>
> Thus I have modified the readbdf function, converting the EEG data from double to single precision (each value occupies 4 bytes instead of 8 bytes):<br>
>     ... (line 100)   catch,           warning backtrace off;           warning('Warning: file might be incomplete');           Records(nrec:end) = [];           DAT.Record(RecLen*length(Records)+1:end,:) = [];           S(nrec:end,:) = [];           break;       end;<br>

>   (line 109)  end;<br>
> %%%%%%% START DAVIDE MODIFICATION %%%%%%%%<br>
>   >>>>>>>      DAT.Record = single(DAT.Record);<<<<<<<  CONVERTING THE EEG DATA FROM DOUBLE TO SINGLE<br>
> %%%%%%% END DAVIDE  MODIFICATION  %%%%%%%%<br>
><br>
</div>> if rem(Mode,2)==0% AutocalibDAT.Record=[ones(RecLen*length(Records),1) DAT.Record]*EDF.Calib;end;<br>
> DAT.Record=DAT.Record';<br>
> ..<br>
><br>
<div class="im HOEnZb">> This way the data importing is much faster. The question is: Do you think I can have any problem because of converting EEG data from double to single precision?<br>
><br>
> Thanks a lot,<br>
><br>
> Davide.<br>
><br>
><br>
><br>
><br>
</div><div class="HOEnZb"><div class="h5">> _______________________________________________<br>
> Eeglablist page: <a href="http://sccn.ucsd.edu/eeglab/eeglabmail.html" target="_blank">http://sccn.ucsd.edu/eeglab/eeglabmail.html</a><br>
> To unsubscribe, send an empty email to <a href="mailto:eeglablist-unsubscribe@sccn.ucsd.edu">eeglablist-unsubscribe@sccn.ucsd.edu</a><br>
> For digest mode, send an email with the subject "set digest mime" to <a href="mailto:eeglablist-request@sccn.ucsd.edu">eeglablist-request@sccn.ucsd.edu</a><br>
<br>
_______________________________________________<br>
Eeglablist page: <a href="http://sccn.ucsd.edu/eeglab/eeglabmail.html" target="_blank">http://sccn.ucsd.edu/eeglab/eeglabmail.html</a><br>
To unsubscribe, send an empty email to <a href="mailto:eeglablist-unsubscribe@sccn.ucsd.edu">eeglablist-unsubscribe@sccn.ucsd.edu</a><br>
For digest mode, send an email with the subject "set digest mime" to <a href="mailto:eeglablist-request@sccn.ucsd.edu">eeglablist-request@sccn.ucsd.edu</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Yuan-Fang Chao <br>School of Psychology<br>SouthWest University<br>Beibei,Chongqing,China<br><br><br><br>
_______________________________________________<br>Eeglablist page: <a href="http://sccn.ucsd.edu/eeglab/eeglabmail.html">http://sccn.ucsd.edu/eeglab/eeglabmail.html</a><br>To unsubscribe, send an empty email to <a href="mailto:eeglablist-unsubscribe@sccn.ucsd.edu">eeglablist-unsubscribe@sccn.ucsd.edu</a><br>For digest mode, send an email with the subject "set digest mime" to <a href="mailto:eeglablist-request@sccn.ucsd.edu">eeglablist-request@sccn.ucsd.edu</a></blockquote></div><br></div></div></div></body></html>