Feature #10077 » Implement_Matrix#row_merge.patch
| lib/matrix.rb | ||
|---|---|---|
| 
     # * #minor(*param) 
   | 
||
| 
     # * #first_minor(row, column) 
   | 
||
| 
     # * #cofactor(row, column) 
   | 
||
| 
     # * #row_merge(*matrices) 
   | 
||
| 
     # * #merge(*matrices) 
   | 
||
| 
     # * #column_merge(*matrices) 
   | 
||
| 
     # 
   | 
||
| 
     # Properties of a matrix: 
   | 
||
| ... | ... | |
| 
       end 
   | 
||
| 
       # 
   | 
||
| 
       # Merge matrices between rows. 
   | 
||
| 
       # 
   | 
||
| 
       #   Matrix[[1, 2], [3, 4]].row_merge(Matrix[[5], [6]]) 
   | 
||
| 
       #     => 1 2 5 
   | 
||
| 
       #        3 4 6 
   | 
||
| 
       # 
   | 
||
| 
       def row_merge(*matrices) 
   | 
||
| 
         if matrices.any?{|m| m.row_size != row_size} 
   | 
||
| 
           raise ErrDimensionMismatch, "all matrices should have same row size" 
   | 
||
| 
         end 
   | 
||
| 
         transpose.column_merge(*matrices.map(&:transpose)).transpose 
   | 
||
| 
       end 
   | 
||
| 
       alias_method :merge, :row_merge 
   | 
||
| 
       # 
   | 
||
| 
       # Merge matrices between column vertically. 
   | 
||
| 
       # 
   | 
||
| 
       #   Matrix[[1, 2], [3, 4]].column_merge(Matrix[[5, 6]]) 
   | 
||