Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > matrixライブラリ > Matrixクラス

class Matrix

クラス・モジュールの継承リスト: Matrix < Enumerable < Object < Kernel < BasicObject

要約

Numericを要素とする行列を扱うクラスです。

行列

m * n 個の数a(i,j)を

[ a(0,0) a(0,1) a(0,2)  a(0,3) ... a(0,n-1)   ]
[ a(1,0) a(1,1) a(1,2)  a(1,3) ... a(1,n-1)   ]
[ a(2,0) a(2,1) a(2,2)  a(2,3) ... a(2,n-1)   ]
[                                             ]
[ a(m-1,0)                         a(m-1,n-1) ]

のように、縦横の表にあらわしたものを(m,n)型の行列といいます。 m=nの行列をm次の正方行列(square matrix)といいます。インデックスは 0 から始まることに注意してください。

上からi番目の横の数の並びを第i行(the i-th row)、左からj番目の縦の数の並びを第j列(the j-th column)といいます。

(m,n)型行列は、大きさnの行(横)ベクトルをm個縦に並べたものとみなすこともできますし、大きさmの列(縦)ベクトルをn個横に並べたものとみなすこともできます。

第i行、第j列にある数a(i,j)を(i,j)要素(the (i,j)-th element)といいます。

i=jの要素a(i,j)を対角要素(diagonal element)、それ以外の要素を非対角要素(nondiagonal element)といいます。

特異メソッド

定義 説明
identity(n) -> Matrix
unit(n) -> Matrix
I(n) -> Matrix

n次の単位行列を生成します。

self[*rows] -> Matrix

rows[i] を第 i 行とする行列を生成します。

build(row_size, column_size = row_size) {|row, col| ... } -> Matrix
build(row_size, column_size = row_size) -> Enumerable

row_size×column_sizeの行列をブロックの返り値から生成します。

column_vector(column) -> Matrix

要素がcolumnの(n,1)型の行列(列ベクトル)を生成します。

columns(columns) -> Matrix

引数 columns を列ベクトルの集合とする行列を生成します。

diagonal(*values) -> Matrix

対角要素がvaluesで、非対角要素が全て0であるような正方行列を生成します。

empty(row_size=0, column_size=0) -> Matrix

要素を持たない行列を返します。

hstack(*matrices) -> Matrix

行列 matrices を横に並べた行列を生成します。

row_vector(row) -> Matrix

要素がrowの(1,n)型の行列(行ベクトル)を生成します。

rows(rows, copy = true) -> Matrix

引数 rows を行ベクトルの列とする行列を生成します。

scalar(n, value) -> Matrix

対角要素が全てvalue(数)で、非対角要素が全て0であるようなn次の正方行列を生成します。

vstack(*matrices) -> Matrix

行列 matrices を縦に並べた行列を生成します。

zero(n) -> Matrix

n × n の零行列(要素が全て 0 の行列)を生成して返します。

zero(row, column) -> Matrix

row × column の零行列(要素が全て 0 の行列)を生成して返します。

インスタンスメソッド

定義 説明
self * m -> Matrix | Vector

self に行列またはベクトル m を右から乗じた行列を返します。

self * other -> Matrix

self の各成分に数 other を掛けた行列を返します。

self ** n -> Matrix

self の n 乗を返します。

self + m -> Matrix

self に行列 m を加算した行列を返します。 self の column_size が 1 なら Vector オブジェクトも指定出来ます。

+ self -> self

単項 +。self を返します。

self - m -> Matrix

self から行列mを減算した行列を返します。 self の column_size が 1 なら Vector オブジェクトも指定出来ます。

- self -> Matrix

単項 -。各要素の符号を反転させた行列を返します。

self / m -> Matrix

self に行列 m の逆行列を右から乗じた行列を返します。

self / other -> Matrix

self の各成分を数 other で割った行列を返します。

self == other -> bool
eql?(other) -> bool

自分自身と other を比較し、同値であれば真(true)を返します。

self[i, j] -> ()
element(i, j) -> ()
component(i, j) -> ()

(i,j)要素を返します。行列の範囲外の値を指定した場合には nil を返します。

adjugate -> Matrix

余因子行列を返します。

clone -> Matrix

自分自身のコピーを返します。

coerce(other) -> Array

他の数値オブジェクトとの変換を行います。

cofactor(row, column) -> Integer | Rational | Float

(row, column)-余因子を返します。

cofactor_expansion(row: nil, column: nil) -> object | Integer | Rational | Float
laplace_expansion(row: nil, column: nil) -> object | Integer | Rational | Float

row 行、もしくは column 列に関するラプラス展開をする。

map {|x| ... } -> Matrix
collect {|x| ... } -> Matrix
map -> Enumerator
collect -> Enumerator

行列の各要素に対してブロックの適用を繰り返した結果を、要素として持つ行列を生成します。

column(j) -> Vector | nil
column(j) {|x| ... } -> self

j 番目の列を Vector オブジェクトで返します。 j 番目の列が存在しない場合は nil を返します。ブロックが与えられた場合はその列の各要素についてブロックを繰り返します。

column_size -> Integer
column_count -> Integer

行列の列数を返します。

column_vectors -> [Vector]

自分自身を列ベクトルの配列として返します。

conjugate -> Matrix
conj -> Matrix

複素共役を取った行列を返します。

determinant -> Numeric
det -> Numeric

行列式 (determinant) の値を返します。

determinant_e -> Rational | Float
det_e -> Rational | Float

このメソッドは deprecated です。 Matrix#determinant を代わりに使ってください。

diagonal? -> bool

行列が対角行列ならば true を返します。

each(which = :all) {|e| ... } -> self
each(which = :all) -> Enumerator

行列の各要素を引数としてブロックを呼び出します。

each_with_index(which = :all) {|e, row, col| ... } -> self
each_with_index(which = :all) -> Enumerator

行列の各要素をその位置とともに引数としてブロックを呼び出します。

eigen -> Matrix::EigenvalueDecomposition
eigensystem -> Matrix::EigenvalueDecomposition

行列の固有値と左右の固有ベクトルを保持したオブジェクトを返します。

elements_to_f -> Matrix

各要素を浮動小数点数 Float に変換した行列を返します。

elements_to_i -> Matrix

各要素を整数 Integer に変換した行列を返します。

elements_to_r -> Matrix

各要素を有理数 Rational に変換した行列を返します。

empty? -> bool

行列が要素を持たないならば true を返します。

index(value, selector = :all) -> [Integer, Integer] | nil
index(selector = :all) {|e| ... } -> [Integer, Integer] | nil
index(selector = :all) -> Enumerator
find_index(value, selector = :all) -> [Integer, Integer] | nil
find_index(selector = :all) {|e| ... } -> [Integer, Integer] | nil
find_index(selector = :all) -> Enumerator

指定した値と一致する要素の位置を [row, column] という配列で返します。ブロックを与えた場合は各要素を引数としてブロックを呼び出し、返り値が真であった要素の位置を返します。

first_minor(row, column) -> Matrix

self から第 row 行と第 column 列を取り除いた行列を返します。

hash -> Integer

行列のHash値を返します。

hermitian? -> bool

行列がエルミートならば true を返します。

hstack(*matrices) -> Matrix

行列 self と matrices を横に並べた行列を生成します。

imaginary -> Matrix
imag -> Matrix

行列の虚部を返します。

inspect -> String

自分自身を見やすい形式に文字列化し、その文字列を返します。

inverse -> Matrix
inv -> Matrix

逆行列を返します。

lower_triangular? -> bool

行列が下三角行列ならば true を返します。

lup -> Matrix::LUPDecomposition
lup_decomposition -> Matrix::LUPDecomposition

行列の LUP 分解を保持したオブジェクトを返します。

minor(from_row, row_size, from_col, col_size) -> Matrix
minor(from_row..to_row, from_col..to_col) -> Matrix

selfの部分行列を返します。

normal? -> bool

行列が正規行列ならば true を返します。

orthogonal? -> bool

行列が直交行列ならば true を返します。

permutation? -> bool

行列が置換行列ならば true を返します。

rank -> Integer

階数 (rank) を返します。

rank_e -> Integer

階数 (rank) を返します。

real -> Matrix

行列の実部を返します。

real? -> bool

行列の全要素が実(Numeric#real?)であれば true を返します。

rectangular -> [Matrix, Matrix]
rect -> [Matrix, Matrix]

行列を実部と虚部に分解したものを返します。

regular? -> bool

行列が正方で正則なら true を、特異なら false を返します。

round(ndigits = 0) -> Matrix

行列の各要素を指定した桁数で丸めた行列を返します。

row(i) -> Vector | nil
row(i) {|x| ... } -> self

i 番目の行を Vector オブジェクトで返します。 i 番目の行が存在しない場合は nil を返します。ブロックが与えられた場合はその行の各要素についてブロックを繰り返します。

row_size -> Integer
row_count -> Integer

行列の行数を返します。

row_vectors -> [Vector]

自分自身を行ベクトルの配列として返します。

singular? -> bool

行列が正方で特異なら true を、正則なら false を返します。

square? -> bool

正方行列であるなら、 true を返します。

symmetric? -> bool

行列が対称ならば true を返します。

transpose -> Matrix
t -> Matrix

転置行列 (transpose matrix) を返します。

to_a -> Array

自分自身をArrayに変換したものを返します。

to_s -> String

行列を文字列化し、その文字列を返します。

trace -> Integer | Float | Rational | Complex
tr -> Integer | Float | Rational | Complex

トレース (trace) を返します。

unitary? -> bool

行列がユニタリならば true を返します。

upper_triangular? -> bool

行列が上三角行列ならば true を返します。

vstack -> Matrix

行列 self と matrices を縦に並べた行列を生成します。

zero? -> bool

行列が零行列ならば true を返します。

継承したメソッド

! != __id__ __send__ instance_eval instance_exec method_missing singleton_method_added singleton_method_removed singleton_method_undefined all? any? chunk chunk_while collect_concat count cycle detect drop drop_while each_cons each_entry each_slice each_with_object entries find_all first grep grep_v group_by include? inject lazy max max_by min min_by minmax minmax_by none? one? partition reject reverse_each slice_after slice_before slice_when sort sort_by sum take take_while to_h to_set uniq zip !~ <=> === =~ _dump class clone define_singleton_method display enum_for equal? extend freeze frozen? initialize initialize_copy instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? itself marshal_dump marshal_load method methods must_be must_be_close_to must_be_empty must_be_instance_of must_be_kind_of must_be_nil must_be_same_as must_be_within_epsilon must_equal must_include must_match must_raise must_respond_to must_send must_throw nil? object_id pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods psych_to_yaml public_method public_methods public_send remove_instance_variable respond_to? respond_to_missing? send singleton_class singleton_method singleton_methods taint tainted? tap to_ary to_hash to_int to_io to_proc to_regexp to_str trust untaint untrust untrusted? .new .yaml_tag ::ARGF ::ARGV ::DATA ::ENV ::FALSE ::NIL ::RUBY_COPYRIGHT ::RUBY_DESCRIPTION ::RUBY_ENGINE ::RUBY_PATCHLEVEL ::RUBY_PLATFORM ::RUBY_RELEASE_DATE ::RUBY_REVISION ::RUBY_VERSION ::SCRIPT_LINES__ ::STDERR ::STDIN ::STDOUT ::TOPLEVEL_BINDING ::TRUE