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

9 views (last 30 days)
Daiki
Daiki on 3 Dec 2021
Moved: Atsushi Ueno on 17 Aug 2022
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 Comments
Atsushi Ueno
Atsushi Ueno on 3 Dec 2021
Moved: Atsushi Ueno on 17 Aug 2022
配列の添え字として使うのであれば、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 on 3 Dec 2021
Moved: Atsushi Ueno on 17 Aug 2022
おー.美しいですね.素晴らしい.

Sign in to comment.

Accepted Answer

Toru Ikegami
Toru Ikegami on 3 Dec 2021
こんにちは,
一桁目だけを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 Comments
Toru Ikegami
Toru Ikegami on 3 Dec 2021
早とちりでしたね.すみません.
こんな感じでしょうか.もっとスマートなやり方があるかもしれませんが・・・
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 on 3 Dec 2021
早い解答ありがとうございます。 とても悩んでいたので、助かりました!

Sign in to comment.

More Answers (0)

Categories

Find more on 行列および配列 in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!