Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Preallocating the size of a matrix which concatenates horizontally matrices in a for loop

Asked by Giorgos Papakonstantinou on 16 Jun 2013

How can I preallocate matrix t:

t=[];
for i=1:3;
    a=randi(10,3,2);
      t=[a t];
end

0 Comments

Giorgos Papakonstantinou

Products

No products are associated with this question.

1 Answer

Answer by the cyclist on 16 Jun 2013
Accepted answer

Like this. (I also parameterized so it would be easier to see how this generalizes.)

m=3;
n=2;
t = zeros(m,m*n);
for i=1:m;
    a = randi(10,m,n);
    t(:,n*(i-1)+1:n*i) = a;
end

You don't need the intermediate variable, either:

m=3;
n=2;
t = zeros(m,m*n);
for i=1:m;
    t(:,n*(i-1)+1:n*i) = randi(10,m,n);
end

1 Comment

Giorgos Papakonstantinou on 16 Jun 2013

Thank you cyclist.

the cyclist

Contact us