From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 2007-08-08T21:11:48+09:00 Subject: [ruby-list:43828] Re: Matrix/Vector クラスのリファレンスマニュアル けいじゅ@いしつかです. In [ruby-list:43827] the message: "[ruby-list:43827] Matrix/Vector ク ラスのリファレンスマニュアル", on Aug/08 18:04(JST) "Hideo Konami" writes: >小波です。 >行列計算をする必要があって,Matrix/Vector クラスのリファレンス >マニュアルを見ていたのですが,変だなと思うところがありましたの >で,こちらに投稿します。より適切な投稿先があるのでしたら,教えて >いただけると助かります。 ドキュメントにはタッチできていないので, あまりドキュメントに対してコメ ントを言える立場ではないのですが... 一応, ライブラリ作者としてコメントを ># Vector.[a] ># 配列aを要素とするベクトルを生成する。 > >Vector.xxx という書き方はできませんし,実際に有効なのは >Vector[1,2] という形のインスタンス生成なので,おかしいと思いました。 そうですね. おっしゃるとおりだと思います. あと配列aという表現も違和感 があります. Vector[e1, e2, e3, ...] 引数e1, e2, e3, ... を要素とするベクトルを生成する。 あたりがよいかと... >また, ># Vector#* m ># 列ベクトル(行列)に変換して(実際にはMatrix#column_vector(self)を適 ># 用)から、行列mを右から乗じた行列(Matrixクラス)を返す。 >とあるのに, わざわざ, ># 列ベクトル(行列)に変換して(実際にはMatrix#column_vector(self)を適 ># 用)から、 の部分は書く必要はないですね. これは, 内部処理の話ですので. >許される演算は行列を左から乗じるもので,演算結果はベクト >ルです。つまり次の演算は弾かれ,逆はベクトルが計算さ >れます。 > Vector[1,2] * Matrix[[1,2],[2,3]] 弾かれるという件ですが, Vector[1,2]は, 見た目は横ですが実際は縦(列)ベ クトルをさしているので, この場合次元があっていないのでエラーになります. Vector[1,2].covector * Matirx[[1,2], [2,3]] もしくは, Matrix.row_vector(1,2) * Matirx[[1,2], [2,3]] としてください. __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<---