hi all , I want to built a matrix of circulating vectors without using loops
for example
input:
1 2 3 4 4 5 6 7 3 8 4 6
output :
1 2 3 4 4 1 2 3 3 4 1 2 2 3 4 1 4 5 6 7 7 4 5 6 6 7 4 5 5 6 7 4 3 8 4 6 6 3 8 4 4 6 3 8 8 4 6 3
I use the code
v =[1,2,3,4;4,5,6,7;3,8,4,6]%notice the length of each vector in v is equal
len_rows=length(v(:,1)); len_cols=length(v(1,:)); mat_shifted=zeros(len_rows*len_cols,len_cols); j=1; for i=1:len_rows vec=v(i,:);mat=toeplitz([vec(1) fliplr(vec(2:end))], vec)mat_shifted(j:j+len_cols-1,:)=matj=j+len_cols; end
is there a smart way to do it without using loops , thanks in advance
Best Answer