Re: Working with arrays
- To: mathgroup at smc.vnet.net
- Subject: [mg131206] Re: Working with arrays
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Mon, 17 Jun 2013 06:28:12 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- References: <20130616091915.825D36A2D@smc.vnet.net>
Clear[IA,xtest,$Post];
CenterDot is not really an operator, it is a notation
IA\[CenterDot]xtest
IA\[CenterDot]xtest
IA=Array[a,{3,3}];
xtest=Array[x,3];
IA\[CenterDot]xtest
{{a[1,1],a[1,2],a[1,3]},{a[2,1],a[2,2],a[2,3]},{a[3,1],a[3,2],a[3,3]}}\[CenterDot]{x[1],x[2],x[3]}
If you want CenterDot to carry out the operation Dot, you can use a
replacement rule
IA.xtest == Dot[IA,xtest]==
Inner[Times,IA,xtest,Plus]==
(IA\[CenterDot]xtest/.CenterDot->Dot)==
(CenterDot[IA,xtest]/.CenterDot->Dot)
True
If you want CenterDot to always act like Dot with lists then use $Post to
automatically use the replacement rule.
$Post=#/.CenterDot[x_List,y_List]->
Dot[x,y]&;
IA.xtest == Dot[IA,xtest]==
Inner[Times,IA,xtest,Plus]==
IA\[CenterDot]xtest==CenterDot[IA,xtest]
True
Symbolic use of CenterDot is not changed
x\[CenterDot]y
x\[CenterDot]y
Bob Hanlon
On Sun, Jun 16, 2013 at 5:19 AM, amannucci
<Anthony.J.Mannucci at jpl.nasa.gov>wrote:
> I thought I understood variables. This sequence completely mystifies me:
> Clear[lA, xtest]
> lA = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
> xtest = {4, 5, 6};
> lA\[CenterDot]xtest (* First case *)
> {{a, b}, {c, d}} . {x, y} (* Second case *)
>
> The output is:
>
> {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}\[CenterDot]{4, 5, 6}
>
> {a x + b y, c x + d y}
>
> How do I force matrix multiplication to actually occur, as in the second
> answer? Why does Mathematica do the matrix multiply in the second case but
> not the first?
>
> Thanks for any help.
>
> -Tony
>
>
- References:
- Working with arrays
- From: amannucci <Anthony.J.Mannucci@jpl.nasa.gov>
- Working with arrays