Named Matrix like ArrayFields

D

Dan Fitzpatrick

I'm looking for a named matrix that acts like arrayfields so you can
get and set cells based on a name and/or an index. This is array
fields <http://codeforpeople.com/lib/ruby/arrayfields/
arrayfields-4.7.0/> :
require 'arrayfields' => true
x = ArrayFields.new:)a,:b,:c,:d) => [:b, :d]
x[0] => :b
x[:a] => :b
x['a']
=> :b

I basically want that but in two dimensions.

Something like:

x = NamedMatrix.new
x.xs = %w(a b c d) # the names of the x axis
x.ys = %w(e f g h) # the names of the y axis

So that x[:a][:f] is the same as x[0][1] for getting and setting. Also
have some dumping mechanism to get an array of arrays or arrays of
hashes or even csv or some other 2D dump.

I don't think this is too tough to write especially with arrayfields
but was wondering if anyone has done it yet.

Thanks,

Dan
 
H

Harry Kakueki

Something like:

x = NamedMatrix.new
x.xs = %w(a b c d) # the names of the x axis
x.ys = %w(e f g h) # the names of the y axis

So that x[:a][:f] is the same as x[0][1] for getting and setting. Also have
some dumping mechanism to get an array of arrays or arrays of hashes or even
csv or some other 2D dump.

Maybe take a look at Struct.

x = Struct.new:)a,:b,:c)
y = Struct.new:)d,:e,:f)
var = x.new(y.new(0,1,2),y.new(10,11,12),y.new(20,21,22))

#################
p var[:c][:e]
p var[2][1]
p var['c']["e"]

var[2][:e] = 77
p var[:c][:e]


Harry
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,070
Latest member
BiogenixGummies

Latest Threads

Top