set multiple columns of matrix simultaneously

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?

 采纳的回答

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

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 MATLAB 的更多信息

产品

标签

Community Treasure Hunt

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

Start Hunting!

Translated by