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