MATLAB Answers

matrix step shift in each row

24 ビュー (過去 30 日間)
mohammed hussein
mohammed hussein 2021 年 2 月 23 日
コメント済み: mohammed hussein 2021 年 2 月 23 日
HI
i have equestion about matrix shift numbers . for example i have this matrix
A =[ 1 2 3 4 5 ]
i want it to be
A =
1 2 3 4 5
5 1 2 3 4
4 5 1 2 3
3 4 5 1 2
2 3 4 5 1
thank you very much for helping
  2 件のコメント
mohammed hussein
mohammed hussein 2021 年 2 月 23 日
yes , i have circle geometry , i want to shift the number in circle like the simple example that i asking about

サインインしてコメントする。

採用された回答

Rik
Rik 2021 年 2 月 23 日
This method works without a loop.
A =[ 1 2 3 4 5 ];
[X,Y]=ndgrid(1:numel(A));
X=X(end:-1:1,:);
ind=mod(X+Y,numel(A));
ind(ind==0)=numel(A);
A(ind)
ans = 5×5
1 2 3 4 5 5 1 2 3 4 4 5 1 2 3 3 4 5 1 2 2 3 4 5 1
  1 件のコメント
mohammed hussein
mohammed hussein 2021 年 2 月 23 日
thank you very much . this exactly what i want

サインインしてコメントする。

その他の回答 (1 件)

Stephen Cobeldick
Stephen Cobeldick 2021 年 2 月 23 日
A = [1,2,3,4,5];
B = toeplitz(A([1,end:-1:2]),A)
B = 5×5
1 2 3 4 5 5 1 2 3 4 4 5 1 2 3 3 4 5 1 2 2 3 4 5 1
  1 件のコメント
mohammed hussein
mohammed hussein 2021 年 2 月 23 日
Thank you very much

サインインしてコメントする。

製品

Community Treasure Hunt

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

Start Hunting!

Translated by