2008年7月18日

[ruby-list:45234] Matrix のサブクラスのインスタンス生成

うえむら@文京区と申します。

プログラミングを始めるなら、やっぱり Ruby っしょ!ということで、
さわり始めてから、幾星霜。。。やっと「作りたい」と思うネタが出来たので、
頑張っているところなのですが、Matrix のサブクラスを定義しようとして、
はまっております。

ウェブ上の Ruby リファレンスマニュアルの Matrix の項を何度も読んだのですが、

どうしてもエラーの原因が判らず、恐る恐るメールしてみました。最初の二つの方
法でのインスタンス生成は成功しているのに、3つ目の方法だと引数の数が違う旨
を言われてエラーになります。

ruby/1.8/{e2mmap,matrix}.rb の該当箇所を読んでみたのですが、サッパリでして。
この辺りを確認してみたら?といったポインタを頂ければ、幸いです。

宜しくお願い致します。


#"ruby -w" を受け取ってくれる env と "No such file" と弾いちゃう env
#があるけれど、違いは何なのだろう。。。


> ruby --version
ruby 1.8.1 (2003-12-25) [x86_64-linux-gnu]
> cat my_matrix.rb
#! /bin/env ruby
#! /bin/env ruby #-w

require 'matrix'

class MyMatrix < Matrix
attr_accessor :fixed
def initialize
super
@fixed = false
end
end

mtrx = MyMatrix.zero(3)
p mtrx
mtrx = Matrix[[11, 12], [21, 22]]
p mtrx
rows = [[1, 0], [0, 1]]
mtrx = MyMatrix.rows(rows, copy = true)
p mtrx
> ./my_matrix.rb
Matrix[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
Matrix[[11, 12], [21, 22]]
/usr/lib64/ruby/1.8/e2mmap.rb:70:in `initialize': wrong number of
arguments(3 for 0) (ArgumentError)
from /usr/lib64/ruby/1.8/e2mmap.rb:70:in `new'
from /usr/lib64/ruby/1.8/e2mmap.rb:70:in `new'
from /usr/lib64/ruby/1.8/matrix.rb:217:in `rows'
from ./my_matrix.rb:19


投稿者 xml-rpc : 2008年7月18日 00:41
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/75455
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。