MATLAB: Set multiple columns of matrix simultaneously

MATLABmatrixvector

Hello,
I want to set multiple columns of a matrix to the same column vector. What I am currently doing is itterating over each column and changing them individually.
DM_sine = zeros(32);
for i=1:length(DM_sine);
DM_sine(:,i) = sin(2*pi*i/32);
end
This does what I want, but seems massively inefficient and inelegant. Is there a better alternative?

Best Answer

Vectorise the first row, and then use repmat to duplicate it down the columns:
DM_sine = zeros(32);
i=1:length(DM_sine);
DM_sine = repmat(sin(2*pi*i/32), size(DM_sine,1), 1);
sample = DM_sine(1:5, 1:5) % View Sample (Not Required)
sample =
0.19509 0.38268 0.55557 0.70711 0.83147
0.19509 0.38268 0.55557 0.70711 0.83147
0.19509 0.38268 0.55557 0.70711 0.83147
0.19509 0.38268 0.55557 0.70711 0.83147
0.19509 0.38268 0.55557 0.70711 0.83147