How to create a sqaure matrix from a one dimensional vector

1 次查看(过去 30 天)
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

采纳的回答

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

更多回答(1 个)

Wayne King
Wayne King 2012-3-1
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

标签

Community Treasure Hunt

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

Start Hunting!

Translated by