How to create a sqaure matrix from a one dimensional vector

1 view (last 30 days)
Hi all,
I want to create a n*n matric from a 1*n matrix such that all possible every column is the shifted version of the previous one. For example, 1 2 3 4 then matrix should look like
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
Thanks

Accepted Answer

Sean de Wolski
Sean de Wolski on 1 Mar 2012
x = 1:4;
gallery('circul',x) %gallery strikes again!
More
fliplr(gallery('circul',fliplr(x)))
since you want it shifted to the left.

More Answers (1)

Wayne King
Wayne King on 1 Mar 2012
One way:
x = [1 2 3 4];
x = x(:);
x = repmat(x,1,4);
for nn = 2:4
x(:,nn) = circshift(x(:,nn),nn-1);
end

Tags

Community Treasure Hunt

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

Start Hunting!