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

26 vues (au cours des 30 derniers jours)
Daiki
Daiki le 3 Déc 2021
Déplacé(e) : Atsushi Ueno le 17 Août 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 commentaires
Atsushi Ueno
Atsushi Ueno le 3 Déc 2021
Déplacé(e) : Atsushi Ueno le 17 Août 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 le 3 Déc 2021
Déplacé(e) : Atsushi Ueno le 17 Août 2022
おー.美しいですね.素晴らしい.

Connectez-vous pour commenter.

Réponse acceptée

Toru Ikegami
Toru Ikegami le 3 Déc 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 commentaires
Toru Ikegami
Toru Ikegami le 3 Déc 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 le 3 Déc 2021
早い解答ありがとうございます。 とても悩んでいたので、助かりました!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 行列および配列 dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!