One day i will program in a ruby way. I am searching the CHM file that comes with the windows installer they only thing that has matrix is "Math mode (fraction and matrix support is available)." under the IRB. I am going to delete the CHM file and just use the http://www.ruby-doc.org/stdlib/ pages. But the matrix class does not seem to be useful for what i want. It would be good for linear algebra. Thank you again for your help. Stephen On Tue, 28 Sep 2004 23:59:21 +0900, David A. Black <dblack / wobblini.net> wrote: > Hi -- > > On Tue, 28 Sep 2004, STEPHEN BECKER I V wrote: > > > Should rindex work for an array of arrays? I am starting the playfair > > cypher, you get a key and append the alphabet to it then remove dups > > and change J to I, then make that in to a matrix . > > > > mat[0].rindex("b") works right > > but not > > mat.rindex("b") > > If mat is an array of arrays, then none of its elements are "b", so > there will be no match there. > > > Do i need a string match type of thing? > > Maybe, but have you looked at the Matrix class? I'm not sure, but it > might have the kind of search mechanism you need. > > > ####code > > def removedup(a) # i want to change a to an array then use uniq > > b=('a'..'z').to_a > > a<<b.to_s > > a.gsub!("j","i") > > a.gsub!(/\s/, '') > > loc=0 > > while loc<a.size > > > > for i in loc+1 .. a.size > > a[i]='' if a[loc]==a[i] > > end > > loc+=1 > > end > > > > return a > > end > > > > def makematrix(a) > > count = 0 > > mx = Array.new(5) > > for i in 0 .. (5 - 1) > > row = Array.new(5, 0) > > for j in 0 .. (5 - 1) > > row[j] = a[count].chr #make a matrix of the letters in a > > count += 1 > > end > > mx[i] = row > > end > > return mx > > end > > > > print "Enter a key: " > > a=gets.downcase > > > > print removedup(a) > > tmat=makematrix(a) > > print tmat.rindex("x") # will this work? > > ####code > > Slightly shorter version of your code (I think it does the same > thing), just for fun :-) > > def removedup(a) > (a.split(//).concat(('a'..'z').to_a) - ["j"]).uniq.join > end > > def makematrix(a) > a.scan(/.{5}/).map {|row| row.split(//)} > end > > print "Enter a key: " > a=gets.downcase.chomp > > r = removedup(a) > puts r > tmat=makematrix(r) > p tmat > > I haven't used Matrix, but again, you might want to look at that too. > > David > > -- > David A. Black > dblack / wobblini.net > >