Preallocation of data
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Matt Fig
le 26 Avr 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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!