Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Why is Mathematica assuming k==l and how do I make it

  • To: mathgroup at smc.vnet.net
  • Subject: [mg92710] Re: Why is Mathematica assuming k==l and how do I make it
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Sat, 11 Oct 2008 06:43:37 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <gci2il$td$1@smc.vnet.net> <gcn4a5$75e$1@smc.vnet.net>

mariam wrote:

*snip*

> i am new to mathematica and learning about some codes needed in my
> projects.
> i want to know that:
> 1)
> 
> Do[{
>   	amplist[i1]= Read[StringJoin[jproc,"/",QCD[i1],"diagrams.amp"]],
>   	ileng[i1] = Length[amplist[i1]],
> 
> 	Do[{
>     	Print["Processing amp[",i1,",",i2,"]"],
>     	If[i1===2,{amp[i1,i2] = amplist[i1][[i2]][[3]]}, {amp[i1,i2] =
> amplist[i1][[i2]][[2]]
> 											  }],
> ---------------------------------- and so on.
>  What does amp[i1,i2] = amplist[i1] [[i2]] [[3]] mean? I mean any
> f[i.j]=g[i] [[j]] [[k]]
> I am confused about the double-brackets used  [[----]].
> 
> 2) in another expression,
> itwo = StringPosition[jproc,"2"][[1,1]]
> 
> what for [[ x, y]] is used?

The notation [[__]] is a shortcut for the built-in functions *Part*, 
which works to some extent like an index for an array, except that you 
can iterate over any kind of expression.


     In[1]:= lst = {{a, b, c}, {3, 5, 1}};

     In[2]:= lst[[2, 2]]

     Out[2]= 5

     In[3]:= Do[Print[lst[[x, y]]], {x, 2, 1, -1}, {y, 3, 1, -1}]

     During evaluation of In[3]:= 1

     During evaluation of In[3]:= 5

     During evaluation of In[3]:= 3

     During evaluation of In[3]:= c

     During evaluation of In[3]:= b

     During evaluation of In[3]:= a

     In[4]:= poly = a x^3 + b x^2 + c x + d

     Out[4]= d + c x + b x^2 + a x^3

     In[5]:= poly[[3]]

     Out[5]= b x^2

     In[6]:= poly[[3, 2]]

     Out[6]= x^2

     In[7]:= poly[[3, 2, 2]]

     Out[7]= 2


You should have a look at the following (short) documents:

"Manipulating Elements of Lists"
http://reference.wolfram.com/mathematica/tutorial/ManipulatingElementsOfLists.html

"Getting Pieces of Lists"
http://reference.wolfram.com/mathematica/tutorial/GettingPiecesOfLists.html

"Parts of Expressions"
http://reference.wolfram.com/mathematica/tutorial/PartsOfExpressions.html

"Manipulating Lists by Their Indices"
http://reference.wolfram.com/mathematica/tutorial/ManipulatingListsByTheirIndices.html

"Part ([[...]])"
http://reference.wolfram.com/mathematica/ref/Part.html

Regards,
-- Jean-Marc


  • Prev by Date: Re: Re: Why is Mathematica assuming k==l and how do I
  • Next by Date: Re: Overlapping binning of differences of two lists
  • Previous by thread: Re: Why is Mathematica assuming k==l and how do I make it
  • Next by thread: Re: Why is Mathematica assuming k==l and how do I make it