Access Matrix Element in Mathematica

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
5 replies · 25K views
Mindscrape
Messages
1,854
Reaction score
1
[SOLVED] Access Matrix Element in Mathematica

Alright, so in Mathematica you define a matrix by saying A = {{a11,12,...},{21,a22,...}} for whatever matrix you are making. How do you access a particular element of that matrix?

Argh, Matlab is so much better.
 
Physics news on Phys.org
Yep, Mathematica is the crappiest language I've ever come across, and I've worked with more than a few. :)

Use Extract, e.g.:

Extract[Extract[A,1],2] = a12

If possible, use IDL, Matlab, R, Octave, SciLab, Python with NumPy and SciPy or anything else. I'd rather use an abacus than use Mathematica :). Good luck with your work.

--------
Assaf
http://www.physicallyincorrect.com/"
 
Last edited by a moderator:
If I recall correctly, L[[x]] extracts the x-th element of a list.

If you really don't want to type A[[x]][[y]], you can always define a function:

A[x_, y_] := A[[x]][[y]]

and then you should be able to use A[x, y] to index your matrix. (I think you can use the same letter A for both these purposes. If it fails or you find it confusing, then just rename the function to something else.

You could even do a generic

Get[A_, x_, y_] := A[[x]][[y]]

that takes the matrix as an argument. Then you'd call

Get[A, x, y]



Matlab was designed for the sole purpose of manipulating matrices -- therefore it should be no surprise that it's more convenient to use Matlab instead of Mathematica for manipulating matrices. :wink:

Mathematica isn't a bad language: the catch is that it's a functional language, which takes a bit of adjustment if you've never programmed in a functional language before.
 
Last edited:
I guess it's a matter of taste. But I have worked with LISP & Haskell. Can't say they've changed my opinion about Mathematica :smile:

--------
Assaf
http://www.physicallyincorrect.com/"
 
Last edited by a moderator:
Got it. Thanks guys, I would have never sorted through mathematica help well enough to figure this out.
 


It really isn't that difficult - you can use Part[A, i, j]=aij