Re: re: my previous question on matrix element assignment
- To: mathgroup at smc.vnet.net
- Subject: [mg17262] Re: [mg17236] re: my previous question on matrix element assignment
- From: Daniel Reeves <dreeves at eecs.umich.edu>
- Date: Fri, 30 Apr 1999 02:34:45 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Not sure I understand your solution... What is f?
Here's what I did:
SetAttributes[setIndex, HoldFirst]
setIndex[mat_, index_, value_]:= mat[[Sequence@@index]] = value
SetAttributes[setIndices, HoldFirst]
setIndices[mat_, indices, values_]:=
MapThread[setIndex[mat,#1,#2]&, {indices, values}]
-- -- -- -- -- -- -- -- -- -- -- --
Daniel Reeves http://ai.eecs.umich.edu/people/dreeves/
"The idea of programming in a low level language like C will seem as
specialized and esoteric as programming in microcode or assembler
seems today." -- Stephen Wolfram, creator of Mathematica
On Mon, 26 Apr 1999, Richard Finley wrote:
>
> Nothing like posting a question to the group to make you see the answer...I
> had asked how to
> make assignments to certain matrix elements of (for example) mat =
> Array[mat,{3,3}] where the indices of the matrix elements to be assigned
> are in the list v = {{1,2},{1,3},{2,3},{3,1}} and the values they are to be
> assigned are in the list w = {1, 4, 2, 5}, so m[1,2]=1, m[1,3]=4, etc...
>
> My head is now clear enough to see the answer:
>
> sol=mat/.Thread[f/@v->w]
>
> Thanks to anyone who thinks about it anyway and I am interested to see any
> other approaches.
>
> Richard Finley
>