(31) 配列要素を3グループに分割する

投稿者: | 2014/07/01

要素数10個の配列を作る。この配列 aを先頭から順に3グループに分割したい。

octave:1> a = rand(1,10)
a =
   0.772741   0.626770   0.137352   0.084265   0.202622   0.936371   0.214594   0.947130   0.592333   0.579594

3グループそれぞれの要素を抽出するためのインデックス用配列を作成する。
・グループ1: 3n+1
・グループ2: 3n+2
・グループ3: 3n
配列からの特定条件を満たす要素の抽出には find を使用する。

octave:2> idx = [1:10]
idx =
    1    2    3    4    5    6    7    8    9   10
octave:3> idx_1 = find(mod(idx,3)==1)
idx_1 =
    1    4    7   10
octave:4> idx_2 = find(mod(idx,3)==2)
idx_2 =
   2   5   8
octave:5> idx_3 = find(mod(idx,3)==0)
idx_3 =
   3   6   9

先に作成した配列 aを、グループ分割用インデックス配列 idx_nを使用して分割する。

octave:6> g1 = a(idx_1)
g1 =
   0.772741   0.084265   0.214594   0.579594
octave:7> g2 = a(idx_2)
g2 =
   0.62677   0.20262   0.94713
octave:8> g3 = a(idx_3)
g3 =
   0.13735   0.93637   0.59233

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です