Re: [Q] Mathematica, how to write a[[2,3]] having {2,3}
- To: mathgroup at smc.vnet.net
- Subject: [mg9289] Re: [mg9233] [Q] Mathematica, how to write a[[2,3]] having {2,3}
- From: Allan Hayes <hay at haystack.demon.co.uk>
- Date: Mon, 27 Oct 1997 02:47:00 -0500
- Sender: owner-wri-mathgroup at wolfram.com
eds at gravi.physik.uni-jena.de (E. Schmidt) Subject: [mg9289] [mg9233] [Q] Mathematica, how to write a[[2,3]] having {2,3} > I want Mathematica to do is to read/write the element > of the multidimensional array (List of List of...) > with the indices are given in a List, e.g. > >In[] > a={{11,12,13},{21,22,23,24,25}}; > ind12={1,2}; > NewValue=1000; > SetElem[a,ind12,NewValue] > a > >Out[] > {{11,1000,13},{21,22,23,24,25}} Eduard: a = {{11,12,13},{21,22,23,24,25}}; ind12={1,2}; NewValue=1000; a[[Sequence@@{1,2}]] = NewValue; a {{11, 1000, 13}, {21, 22, 23, 24, 25}} This is an efficient process, but it requires the matrix to be given a name and we have to use this name to get the new value. The following will work on the name or directly on the (unnamed) matrix, and ouputs the modified matrix. ReplacePart[a,2 NewValue,ind12] {{11, 2000, 13}, {21, 22, 23, 24, 25}} ReplacePart[{{11,12,13},{21,22,23,24,25}},3 NewValue,ind12] {{11, 3000, 13}, {21, 22, 23, 24, 25}} However it will not change the value of a; a {{11, 1000, 13}, {21, 22, 23, 24, 25}} to do this or assign a name we could simply do something like a = ReplacePart[a,2 NewValue,ind12] Allan Hayes hay at haystack.demon.co.uk http://www.haystack.demon.co.uk/training.html voice:+44 (0)116 2714198 fax: +44 (0)116 2718642 Leicester, UK