# How to avoid this problem "consider preallocating the memory .for speed" in the below sample code

6 views (last 30 days)

Show older comments

The code is like this

m = [];

x=[100,200,300.....]

for k= 1:1:142

if(k >= 142)

break;

end

%

if x(k)== [5];

mm = horzcat(mm,xx);

elseif (x(k+1) >= 20)

bb = 10- lj1 ;

cc = dec2bin(bb,3)-'0';

mm = horzcat(mm,cc);

%

elseif (x(k+2) >= 10)

cc = dec2bin(bb,3)-'0';

mm = horzcat(mm,cc);

%

end

end

how the preallocation of 'mm' can be done to increase the speed of execution. Kindly suggest

##### 3 Comments

Steven Lord
on 14 Sep 2017

### Answers (2)

KSSV
on 14 Sep 2017

If you are aware of the dimensions of the allocation preallcoate it using:

x = zeros(m,n) ;

If you are not aware of dimensions, and you know that it is either a row or a column vector:

x = zeros([],n) ; % a row row vector

x = zeros(m,[]) ; % a column vector

If you are not sure of dimensions, allocate it as cell:

x = cell([],n) ;

x = cell(m,[]) ;

##### 0 Comments

### See Also

### Categories

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!