Preallocation of data
10 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi, I have a code which stated it suggest to preallocate to consider speed. I have a incoming data and I stored as received. Here is the code:
received=fgetl(s);
file= [file received];
How can I preallocate the file when I m receiving? The formation of data should look like file =01010101010101010101010101010000.........
How can i do that?
Thanks
0 Commenti
Risposta accettata
Matt Fig
il 26 Apr 2011
Is this just the same question you have asked twice before? If not, you need to include more code. For example, pre-allocation works when used in a loop, yet I see no loop in what you have posted above. Post the code of the loop where you are doing the concatenation.
%
%
%
EDIT In response to your comments below...
Yes, I built the array by column, but then reshaped it to a row vector. You get what you want, and this is faster than some complex indexing scheme into C. Just try it before you think it won't end up a row vector!
Idx = 1+5000*looptimes:last+5000*looptimes;
C = zeros(16,last); % Start out this way, fix in last line...
for ii = 1:length(Idx)
C(:,ii) = F((-15+16*(Idx(ii))):16*(Idx(ii)));
end
C = reshape(C,1,16*last); % Make into a row vector!!
9 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!