HP Forums
Matrix/Array 28/48/50 Question - Printable Version

+- HP Forums (https://archived.hpcalc.org/museumforum)
+-- Forum: HP Museum Forums (https://archived.hpcalc.org/museumforum/forum-1.html)
+--- Forum: Old HP Forum Archives (https://archived.hpcalc.org/museumforum/forum-2.html)
+--- Thread: Matrix/Array 28/48/50 Question (/thread-224092.html)



Matrix/Array 28/48/50 Question - Matt Agajanian - 06-04-2012

Hello all

Can I dynamically access an array or matrix element by simply accessing it these ways:

matrix/array name[var]

or

matrix/array name[row, col]

Or am I only to use GET and PUT?


Edited: 4 June 2012, 2:41 p.m. after one or more responses were posted


Re: Matrix/Array 28/48/50 Question - Oliver Unter Ecker - 06-04-2012

Sadly not. You'll need to use GET or GETI.


Re: Matrix/Array 28/48/50 Question - Matt Agajanian - 06-04-2012

Okay. Besides, that does follow the Postfix structure so, no matter. Just a thought.


Re: Matrix/Array 28/48/50 Question - Oliver Unter Ecker - 06-04-2012

Quote:
Just a thought.

And not a bad one either! I picked it up in RPL+ where you can use the array syntax you suggest. You also have a choice of 1-based or 0-based indices, and automatic support for circular arrays. (But RPL+ is not available on those HP calcs.)


Re: Matrix/Array 28/48/50 Question - Karl-Ludwig Butte - 06-04-2012

Hello Matt,

I found the following process working for me:

'M(row,column)' EVAL @ to extract a matrix element
N 'M(row, column)' STO @ to store a number N into a matrix element

Instead of EVAL in the first case you can use \->NUM, too.

I've tried this on the HP-49G, 49G+ and 50G.

Hope this helps

Regards

Karl


Re: Matrix/Array 28/48/50 Question - Gilles Carpentier - 06-04-2012

Hi

I also use this and it works fine (49/50).

Exemple to try :

 { 5 5 } RANM  'Mat' STO         @ Create a 5x5 random matrix and store it

2 'a' STO

'Mat(a,2)' EVAL @ Return the value

99 'Mat(a,2)' STO @ Store 99 in a,2 cell

'Mat(a,2)' EVAL 'Mat(5,5)' STO @ Put value of a,2 in 5,5

IF 'Mat(a,2)==Mat(5,5)' THEN "Equal value " MSGBOX END
Mat @ Show result

It also works with 'vector'

[ 1 2 3 4 5 ] 'Vect' STO

'Vect(3)' EVAL

99 'Vect(5)' STO


Edited: 4 June 2012, 4:59 p.m.


Re: Matrix/Array 28/48/50 Question - Oliver Unter Ecker - 06-04-2012

Apologies. I had forgotten about this option.

Know though that it runs almost an order of magnitude slower!

From another discussion elsewhere:

Quote:
<< [1 2 3] -> x << 1. 1000. START 'x(1)' EVAL DROP NEXT >> >>
runs 6.5x slower than
<< [1 2 3] -> x << 1. 1000. START x 1 GET DROP NEXT >> >>

And that's 9x slower if you factor out the time for
<< 1. 1000. START NEXT >>
as one should.

(On Emu-48/HP-49G.)





Re: Matrix/Array 28/48/50 Question - Matt Agajanian - 06-04-2012

Well, this is a new one...RPL+. Hmm. Which calcs employ RPL+ ?


Re: Matrix/Array 28/48/50 Question - Matt Agajanian - 06-04-2012

Not certain which post to post this under. Thanks for all your brilliant methods to accomplish the functionality I needed.


Re: Matrix/Array 28/48/50 Question - Oliver Unter Ecker - 06-04-2012

So far, RPL+ is only implemented in one iPhone app: ND1 (ND0 is a free version to try out.)

If you visit the forum, you can learn about what other devices are planned to be supported in the future.

If you know RPL and are just curious about what's new: RPL+ for RPL Users