matrix step shift in each row

7 ビュー (過去 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 件のコメント
Rik
Rik 2021 年 2 月 23 日
Do the numbers in A mean anything (e.g. the number of positions the corresponding row should be shifted), or are you simply asking about a row-wise circshift?
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 件)

Stephen23
Stephen23 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

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

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by