How to create a sqaure matrix from a one dimensional vector

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

 Akzeptierte Antwort

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

Weitere Antworten (1)

Wayne King
Wayne King am 1 Mär. 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

Kategorien

Mehr zu Operators and Elementary Operations finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by