T[Index] in Mathematica: Get Element with Variable Index

  • Context: Mathematica 
  • Thread starter Thread starter unih
  • Start date Start date
  • Tags Tags
    Mathematica
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
4 replies · 3K views
unih
Messages
27
Reaction score
0
Hi.
In Mathematica I have tensor T for example
In[]:=Dimensions[T]
Out[]:={3,3,4}

now i have index of some element in the List form
index={1,2,3}

Now I want to use the element whose index is in variable index. How can I do it?
 
Physics news on Phys.org
T[[Sequence @@ index]]
or
T[[Apply[Sequence,index]]]
 
Thank you very much! Its the only combination I didnt try!
 
If you need to do this operation repeatedly, you're better off using Extract:

Code:
In[4]:= T = Array[t, {5, 5, 5}];

In[8]:= SetOptions[TimeAv, Method -> {"MinNum", 1000000}];

In[9]:= T[[Sequence @@ {3, 3, 4}]] // TimeAv

During evaluation of In[9]:= Total wall time is 2.646485, total cpu time is 2.65217 and total time spent evaluating the expression is 2.65217
During evaluation of In[9]:= The expression was evaluated 1100010 times, in blocks of 110001 runs. This yields a mean timing of 2.41104*10^-6 with a blocked standard deviation of 2.28871*10^-7.

Out[9]= {2.41104*10^-6, t[3, 3, 4]}

In[10]:= Extract[T, {3, 3, 4}] // TimeAv

During evaluation of In[10]:= Total wall time is 0.614893, total cpu time is 0.616039 and total time spent evaluating the expression is 0.616039
During evaluation of In[10]:= The expression was evaluated 1100010 times, in blocks of 110001 runs. This yields a mean timing of 5.6003*10^-7 with a blocked standard deviation of 4.65709*10^-8.

Out[10]= {5.6003*10^-7, t[3, 3, 4]}

The tutorial http://reference.wolfram.com/mathematica/tutorial/ManipulatingListsByTheirIndices.html is worth looking at.