Module: Meshgrid
- Defined in:
- lib/meshgrid.rb,
lib/meshgrid/version.rb
Defined Under Namespace
Classes: Error
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
-
.meshgrid(*narray, indexing: false) ⇒ Object
Arg narray is just Array: But it should contain NArrays.
- .srange(narray, n) ⇒ Object
Class Method Details
.meshgrid(*narray, indexing: false) ⇒ Object
Arg narray is just Array: But it should contain NArrays.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/meshgrid.rb', line 11 def meshgrid(*narray, indexing: false) len = narray.length org_ary = narray.map {|nar| nar.to_a } made_ary = Array.new(len) if len == 2 then made_ary[0] = srange(narray, 1).map { org_ary[0] } made_ary[1] = srange(narray, 0).map { org_ary[1] } if indexing made_ary[0] = made_ary[0].transpose else made_ary[1] = made_ary[1].transpose end elsif narray.length == 3 then made_ary[0] = srange(narray, 2).map { |z| srange(narray, 0).map { |y| srange(narray, 1).map { |x| org_ary[0][y] } } } made_ary[1] = srange(narray, 2).map { |z| srange(narray, 0).map { |y| srange(narray, 1).map { |x| org_ary[1][x] } } } made_ary[2] = srange(narray, 2).map { |z| srange(narray, 0).map { |y| srange(narray, 1).map { |x| org_ary[2][z] } } } # indexing is not supported for 3D grid yet. end return made_ary.map do |ary| narray[0].is_a?(Numo::Int32) ? Numo::Int32[*ary] : Numo::DFloat[*ary] end end |
.srange(narray, n) ⇒ Object
46 |
# File 'lib/meshgrid.rb', line 46 def srange(narray, n); return 0...narray[n].size; end |