필터 지우기
필터 지우기

行列の並べ替え

조회 수: 2 (최근 30일)
Jun
Jun 2019년 1월 11일
댓글: Jun 2019년 1월 18일
62481×1 doubleのデータがあります。これを350×350に並べ替えたいと思っています。
ただ、問題はその並べ変えの仕方です。データの(1,1)を1 (2,1)を2・・・とすると、
1 2 4 7 11 ・・・
2 3 5 8 12・・・
4 5 6 9 13・・・
7 8 9 10 14・・・
11 12 13 14 15・・・
上記のように、複雑ではありますが、規則的に並べ替えたいと思っていますがうまくできません。
お力をお貸しください
  댓글 수: 6
Jun
Jun 2019년 1월 15일
返信ありがとうございます。
お教えいただいた内容から、どのように62481×1 doubleのデータの並べ替えをしたらよいかわかりません。
ご教授いただけないでしょうか。
Kazuya
Kazuya 2019년 1월 15일
あとは jiro さんの言う通り
A(id)
を実行するだけかと思います。下に回答しますので、まずは試してみて、うまくいかなかったらその詳細とともにコメントください。

댓글을 달려면 로그인하십시오.

채택된 답변

Kazuya
Kazuya 2019년 1월 15일
まず、並びを表す行列を作る。
N = 350; % 行列サイズ(任意に決めてください)
base = 1+cumsum(0:N-1);
A = base + (0:N-1)';
uA = triu(A)+triu(A,1)';
62481×1 doubleのデータを M とすると、
Msorted = M(uA);
でOKです。
  댓글 수: 1
Jun
Jun 2019년 1월 18일
返信が遅くなり失礼しました。
無事に解決しました。大変ありがとうございました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 線形代数에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!