I have a given initial array of length M , I want to built a matrix of MxM , by circularly shifting this array, example
for array=[2,0,0] the matrix should be matrix=[2,0,0;0,2,0;0,0,2]
my code works but it not efficient for large M I would be happy if someone can gives me an efficient suggestion
my code:
array=[2,0,0]; % given Initial array
M=length(array);
mat=zeros(M,M);%matrix
mat(1,:)=array;
for i=2:M
array=circshift(array(1,1:M),[0 1]);
mat(i,:)=array;
end
Best Answer