要素に配列が含まれる配列を行列とみなして行と列を入れ替える(transpose)

Array クラスで用意されている transpose メソッドを使用すると、配列に要素として他の配列が格納されている場合に、配列を行列と見なし行と列を入れ替えることができます。ここでは Ruby でネストされた配列を行列とみなして行と列を入れ替える方法について解説します。

(Last modified: )

ネストされた配列を行列とみなして行と列を入れ替える

Array クラスで用意されている transpose メソッドを使用すると、配列に要素として他の配列が格納されている場合に、配列を行列と見なし行と列を入れ替えることができます。

Arrayオブジェクト.transpose

transpose メソッドは行と列を入れ替えた新しい配列を返します。

具体的に見ていきます。例えば配列として次のような配列を考えてみます。

ary = [[1, 2], [3, 4], [5, 6]]

この配列は 3 つの要素を持ち、それぞれが 2 つの要素を持つ配列となっています。この配列を次のような行列と見なします。

ary =[[1, 2],
      [3, 4],
      [5, 6]]

transpose メソッドを使うと配列を行列と見なした場合の行と列を入れ替えます。

ary =[[1, 3, 5],
      [2, 4, 6]]

transpose メソッドを使う場合には元の配列の各要素が行列として成り立つように要素数などが同じでなければなりません。

サンプルコード

実際に試してみます。

# encoding: UTF-8

ary = [["suzuki", 89], ["yamada", 76], ["itou", 69]]
p ary

newary = ary.transpose
p newary

実行結果は次のようになります。

ネストされた配列を行列とみなして行と列を入れ替える

-- --

Ruby でネストされた配列を行列とみなして行と列を入れ替える方法について解説します。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。