Re: Equality...

• To: mathgroup at smc.vnet.net
• Subject: [mg125716] Re: Equality...
• From: A Retey <awnl at gmx-topmail.de>
• Date: Fri, 30 Mar 2012 04:30:47 -0500 (EST)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <jl14hh\$l4t\$1@smc.vnet.net>

```Hi,

>
> I have a matrix with nxn varaibles an entry and want to assign values
> to each of the entries. How can I do this in one go?
>
> I was hoping something like this works, but it doesn't...
>
> Array[Subscript[a, #1, #2]&, {3, 4}] = Array[Random[1], {3, 4}]
>
> Any tips are apprecited.

Set has attribute HoldFirst (for obvious reasons). It does partially
evaluate its first argument in some cases, but not in this. So you need
an explicit Evaluate (note that this will only work if no corresponding
values were defined before):

Evaluate[Array[Subscript[a, #1, #2] &, {3, 4}]] =
RandomReal[{0, 1}, {3, 4}]

It's not trivial to unset those definitions which you need to do if you
want to reset those values, here is something I came up with, but I feel
there must be simpler methods:

ReleaseHold[
Map[Unset,
Block[{Subscript},
Hold @@ {Array[Subscript[a, #1, #2] &, {3, 4}]}], {3}]
]

On the other hand, I would suggest to use either:

a = RandomReal[{0, 1}, {3, 4}]

and then access these values with:

a[[i,j]]

or (note that this is one of the cases where the first argument of Set
is partially evaluated):

Do[a[i,j]=RandomReal[],{i,3},{j,4}]

and:

a[2,3]

which will make your life easier when actually working with these in the
following code.

hth,

albert

```

• Prev by Date: Re: Schaums outline Mathematica 2nd ed, prob. 11.3 help
• Next by Date: Re: PC auto-simplifies output, but mac doesn't
• Previous by thread: Re: Equality...
• Next by thread: PC auto-simplifies output, but mac doesn't