Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Populate (an array or a matrix) from a vector

Reply
Thread Tools

Populate (an array or a matrix) from a vector

 
 
Paul A.
Guest
Posts: n/a
 
      04-25-2010
Hello,

I have a simple, but very tricky, problem. I would like to fix it using
an array. But matix are possibly more appropriate (even if matrix can
not have 3 dimensional values, I think).

I would like to populate a table (of 2 or 3 dimensions), from a vector.

I think the best way to explain myself is to put some examples, with an
array such as:

>> # thanks to Rolf Pedersen's function (http://www.ruby-forum.com/topic/208620)
>> table = make_array(3, 5)


And now, if the seeder vector is: [1, 0], the result should be:

=> [
=> [4, 3, 2, 1, 0],
=> [4, 3, 2, 1, 0],
=> [4, 3, 2, 1, 0]
=> ]

If the vector is: [-1, 0]

=> [
=> [0, 1, 2, 3, 4],
=> [0, 1, 2, 3, 4],
=> [0, 1, 2, 3, 4]
=> ]

If the vector is: [-2, 0]

=> [
=> [0, 0, 1, 1, 2],
=> [0, 0, 1, 1, 2],
=> [0, 0, 1, 1, 2]
=> ]

If the vector is: [1, 1]

=> [
=> [2, 2, 2, 1, 0],
=> [1, 1, 1, 1, 0],
=> [0, 0, 0, 0, 0]
=> ]

If the vector is: [0, 1]

=> [
=> [2, 2, 2, 2, 2],
=> [1, 1, 1, 1, 1],
=> [0, 0, 0, 0, 0]
=> ]

Have you got a idea, or a plan? :s
Any comments are welcome. Thank you.

Best regards.
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Rolf Pedersen
Guest
Posts: n/a
 
      04-25-2010
[Note: parts of this message were removed to make it a legal post.]

Tip: Did you check out the Matrix and Vector classes in the Ruby Standard
Library?
http://ruby-doc.org/core/classes/Matrix.html
http://ruby-doc.org/core/classes/Vector.html

Best regards,
-Rolf

On Sun, Apr 25, 2010 at 3:10 PM, Paul A. <(E-Mail Removed)> wrote:

> Hello,
>
> I have a simple, but very tricky, problem. I would like to fix it using
> an array. But matix are possibly more appropriate (even if matrix can
> not have 3 dimensional values, I think).
>
> I would like to populate a table (of 2 or 3 dimensions), from a vector.
>
> I think the best way to explain myself is to put some examples, with an
> array such as:
>
> >> # thanks to Rolf Pedersen's function (

> http://www.ruby-forum.com/topic/208620)
> >> table = make_array(3, 5)

>
> And now, if the seeder vector is: [1, 0], the result should be:
>
> => [
> => [4, 3, 2, 1, 0],
> => [4, 3, 2, 1, 0],
> => [4, 3, 2, 1, 0]
> => ]
>
> If the vector is: [-1, 0]
>
> => [
> => [0, 1, 2, 3, 4],
> => [0, 1, 2, 3, 4],
> => [0, 1, 2, 3, 4]
> => ]
>
> If the vector is: [-2, 0]
>
> => [
> => [0, 0, 1, 1, 2],
> => [0, 0, 1, 1, 2],
> => [0, 0, 1, 1, 2]
> => ]
>
> If the vector is: [1, 1]
>
> => [
> => [2, 2, 2, 1, 0],
> => [1, 1, 1, 1, 0],
> => [0, 0, 0, 0, 0]
> => ]
>
> If the vector is: [0, 1]
>
> => [
> => [2, 2, 2, 2, 2],
> => [1, 1, 1, 1, 1],
> => [0, 0, 0, 0, 0]
> => ]
>
> Have you got a idea, or a plan? :s
> Any comments are welcome. Thank you.
>
> Best regards.
> --
> Posted via http://www.ruby-forum.com/.
>
>


 
Reply With Quote
 
 
 
 
Paul A.
Guest
Posts: n/a
 
      04-25-2010
Rolf Pedersen wrote:
> Tip: Did you check out the Matrix and Vector classes in the Ruby
> Standard
> Library?
> http://ruby-doc.org/core/classes/Matrix.html
> http://ruby-doc.org/core/classes/Vector.html
>
> Best regards,
> -Rolf


Hi Rolf,

Yes, but I really don't see how to process with. And matrix are limited
to 2 dimensional arrays. But even just for 2D, it's looks like tricky.
O_o
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
Colin Bartlett
Guest
Posts: n/a
 
      04-26-2010
On Sun, Apr 25, 2010 at 2:10 PM, Paul A. <(E-Mail Removed)> wrote:
> ... I have a simple, but very tricky, problem. =A0I would like to fix it =

using
> an array. =A0But matix are possibly more appropriate (even if matrix can
> not have 3 dimensional values, I think). ..


I must confess that from your examples, I'm not at all sure how you
want to populate the "array" given the vector, so the following may
not be any help at all. But: if you want multidimensional numerical
arrays, then NArray might be useful.

http://narray.rubyforge.org
NArray is an Numerical N-dimensional Array class. Supported element
types are 1/2/4-byte Integer, single/double-precision Real/Complex,
and Ruby Object. This extension library incorporates fast calculation
and easy manipulation of large numerical arrays into the Ruby
language. NArray has features similar to NumPy, but NArray has vector
and matrix subclasses. ...

I haven't used it much myself, and I haven't used it recently. But I
did manage to install and use it without using gems, so if I can do it
that way it can't be all that difficult to install !

 
Reply With Quote
 
Masahiro TANAKA
Guest
Posts: n/a
 
      04-27-2010
Hi,

Paul A. wrote:
> And now, if the seeder vector is: [1, 0], the result should be:
>
> => [
> => [4, 3, 2, 1, 0],
> => [4, 3, 2, 1, 0],
> => [4, 3, 2, 1, 0]
> => ]


I guessed your intention and wrote it using NArray:

require 'narray'

def populate( shape, v )
ndim = shape.size
max = shape.max
a = NArray.int(ndim,*shape)
shape.each_with_index do |sz,i|
if v[i] == 0
a[i,false] = max
else
r = [1]*ndim
r[i] = sz
x = NArray.int(sz).indgen!
x = sz-1-x if v[i] > 0
x /= v[i].abs
a[i,false] = x.reshape!(*r)
end
end
a.min(0)
end

populate( [5,3], [1,0] )
=> NArray.int(5,3):
[ [ 4, 3, 2, 1, 0 ],
[ 4, 3, 2, 1, 0 ],
[ 4, 3, 2, 1, 0 ] ]

populate( [5,3], [-1,0] )
=> NArray.int(5,3):
[ [ 0, 1, 2, 3, 4 ],
[ 0, 1, 2, 3, 4 ],
[ 0, 1, 2, 3, 4 ] ]

populate( [5,3], [-2,0] )
=> NArray.int(5,3):
[ [ 0, 0, 1, 1, 2 ],
[ 0, 0, 1, 1, 2 ],
[ 0, 0, 1, 1, 2 ] ]

populate( [5,3], [1,1] )
=> NArray.int(5,3):
[ [ 2, 2, 2, 1, 0 ],
[ 1, 1, 1, 1, 0 ],
[ 0, 0, 0, 0, 0 ] ]

populate( [5,3], [0,1] )
=> NArray.int(5,3):
[ [ 2, 2, 2, 2, 2 ],
[ 1, 1, 1, 1, 1 ],
[ 0, 0, 0, 0, 0 ] ]

populate( [5,3,3], [2,1,1] )
=> NArray.int(5,3,3):
[ [ [ 2, 1, 1, 0, 0 ],
[ 1, 1, 1, 0, 0 ],
[ 0, 0, 0, 0, 0 ] ],
[ [ 1, 1, 1, 0, 0 ],
[ 1, 1, 1, 0, 0 ],
[ 0, 0, 0, 0, 0 ] ],
[ [ 0, 0, 0, 0, 0 ],
[ 0, 0, 0, 0, 0 ],
[ 0, 0, 0, 0, 0 ] ] ]

Masahiro Tanaka

 
Reply With Quote
 
Paul A.
Guest
Posts: n/a
 
      04-27-2010
Thank you very much, Masahiro Tanaka! Your response is exactly what I
dreamed of doing. And your numerical n-dimensional array class is
absolutly awesome! I'm glad to continue coding with!

Thanks again.
Best regards.
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
const vector<A> vs vector<const A> vs const vector<const A> Javier C++ 2 09-04-2007 08:46 PM
Initializing vector<vector<int> > and other vector questions... pmatos C++ 6 04-26-2007 05:39 PM
Free memory allocate by a STL vector, vector of vector, map of vector Allerdyce.John@gmail.com C++ 8 02-18-2006 12:48 AM
Uniform vector class, inheriting from Array: How to make sure thatmethods return a Vector and not an Array? Thomas Ruby 7 05-23-2005 04:21 PM
Populate a popup window with clickable records from an Access DB and upon clicking, populate a selectbox on the original webpage with the clicked record Enjoy Life ASP General 2 02-23-2005 10:48 PM



Advertisments