回答編集履歴

3

コメントアウトされてなかった

2015/12/06 12:13

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -32,6 +32,6 @@
32
32
 
33
33
  m[1, 0] = 100 # 上の例とは添え字が逆になるので注意
34
34
 
35
- p m => NMatrix.int(2,2):NMatrix.int(2,2):[ [ 0, 100 ], [ 2, 3 ] ]
35
+ p m # => NMatrix.int(2,2):NMatrix.int(2,2):[ [ 0, 100 ], [ 2, 3 ] ]
36
36
 
37
37
  ```

2

補足追加

2015/12/06 12:13

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -14,6 +14,24 @@
14
14
 
15
15
  a[0][1] = 100
16
16
 
17
+ m = Matrix[*a]
18
+
17
- m = Matrix[*a] # => Matrix[[0, 100], [2, 3]]
19
+ p m # => Matrix[[0, 100], [2, 3]]
18
20
 
19
21
  ```
22
+
23
+ ---
24
+
25
+ 補足ですが、行列計算を高速にして、もっと普通にアクセスしたいのであれば[NArray](https://masa16.github.io/narray/index.ja.html)というライブラリを使うといいかもしれません。`gem install narray`でインストールできます。ただし、多倍長整数は扱えず、整数は32bitまでのようなのでご注意ください。
26
+
27
+ ```Ruby
28
+
29
+ require 'narray'
30
+
31
+ m = NMatrix[[0, 1], [2, 3]]
32
+
33
+ m[1, 0] = 100 # 上の例とは添え字が逆になるので注意
34
+
35
+ p m => NMatrix.int(2,2):NMatrix.int(2,2):[ [ 0, 100 ], [ 2, 3 ] ]
36
+
37
+ ```

1

文章について補足

2015/12/06 06:03

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -1,4 +1,4 @@
1
- Rubyの[Matrix](http://docs.ruby-lang.org/ja/2.2.0/class/Matrix.html)はNumericと同じ数字の一種と考えられているためか、immutable(変更不可)として設計されています。代入等で変更する方法は用意されていません。Matrixクラスにメソッドを追加して、無理矢理変更することは可能のようですが、お勧めできません。
1
+ Rubyの[Matrix](http://docs.ruby-lang.org/ja/2.2.0/class/Matrix.html)はNumericと同じ数字の一種と考えられている(行列の足し算や掛け算が用意されてある)ためか、immutable(変更不可)として設計されています。代入等で変更する方法は用意されていません。Matrixクラスにメソッドを追加して、無理矢理変更することは可能のようですが、お勧めできません。
2
2
 
3
3
 
4
4