配列に数字を代入するプログラムについて

1 1
1 2
1 3
1 4
1 5
2 1
2 2
2 3
2 4
2 5
3 1
3 2
このような2列目が5までいったら、1列目が1ふえるような配列をつくりたいのです。
どのようなプログラムにすればいいですか。

댓글 수: 2

Atsushi Ueno
Atsushi Ueno 2021년 12월 3일
이동: Atsushi Ueno 2022년 8월 17일
配列の添え字として使うのであれば、ind2sub関数を使う事が出来ます。あっ
x = (1:20)';
[row col] = ind2sub([5 4], x);
disp([col row]); % MATLABのデフォルトは列優先
1 1 1 2 1 3 1 4 1 5 2 1 2 2 2 3 2 4 2 5 3 1 3 2 3 3 3 4 3 5 4 1 4 2 4 3 4 4 4 5
Toru Ikegami
Toru Ikegami 2021년 12월 3일
이동: Atsushi Ueno 2022년 8월 17일
おー.美しいですね.素晴らしい.

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

 채택된 답변

Toru Ikegami
Toru Ikegami 2021년 12월 3일

1 개 추천

こんにちは,
一桁目だけを1から5で回すならば,次のようなコードはいかがでしょうか.
x = (1:20)';
y = 10*(floor((x-1)/5))+mod(x-1,5)+1;
disp(y);
1 2 3 4 5 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35

댓글 수: 3

Daiki
Daiki 2021년 12월 3일
解答ありがとうございます。 配列に格納した形で表すと下記のようにしたかったのです。 1列目 1 1 1 1 1 2 2 2 2 2 3 3 2列目 1 2 3 4 5 1 2 3 4 5 1 2
表記が紛らわしくてすいません。
Toru Ikegami
Toru Ikegami 2021년 12월 3일
早とちりでしたね.すみません.
こんな感じでしょうか.もっとスマートなやり方があるかもしれませんが・・・
x = (1:20)';
y = [ceil(x/5) mod(x-1,5)+1];
disp(y);
1 1 1 2 1 3 1 4 1 5 2 1 2 2 2 3 2 4 2 5 3 1 3 2 3 3 3 4 3 5 4 1 4 2 4 3 4 4 4 5
Daiki
Daiki 2021년 12월 3일
早い解答ありがとうございます。 とても悩んでいたので、助かりました!

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

질문:

2021년 12월 3일

이동:

2022년 8월 17일

Community Treasure Hunt

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

Start Hunting!