Re: Thread::tdlen: Objects of unequal length

• To: mathgroup at smc.vnet.net
• Subject: [mg121881] Re: Thread::tdlen: Objects of unequal length
• From: Peter Pein <petsie at dordos.net>
• Date: Thu, 6 Oct 2011 04:18:37 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <j6h3re\$76t\$1@smc.vnet.net>

```Am 05.10.2011 10:17, schrieb SysInv:
> This problem is driving me crazy. I'm trying to multiply matrices, where one is 1x4 (s) and the other is 4x4 (t) and the multiplication is s*t*Transpose[s]
>
> Despite this I get the error message that the objects is of unequal length. The matrices are:
>
> s={{x1,x2,x3,x4}}
>
> t={0.0284435,0.00395759,0.000211963,0.0357403},{0.00395759,0.0113862,-0.000199939,-0.000556137},{0.000211963,-0.000199939,0.00118147,-0.00043913},{
> 0.0357403,-0.000556137,-0.00043913,0.0649449}
>
> I must use double level in the 1 row matrix, since otherwise Transpose[] complains that it needs at least 2 levels. I tried without this as well, but I keep getting:
>
> Thread::tdlen : Objects of unequal length in {{x1,x2,x3,x4}}{{0.0284435,0.00395759,0.000211963,0.0357403},<<2>>,{<<10>>,<<3>>}}{{x1},{x2},{x3},{x4}} cannot be combined.>>
>
> .. when I run s*t*Transpose[s].
>
> I've spent hours trying to figure this simple problem out, but without any luck. Any pointers guys? It doesn't help if I change the order of the transpose...
>

1.) wrap curly braces around the sequence of lists in the assignment to t.
2.) use matrix-multiplication

In[5]:= s.t.Transpose[s]
Out[5]= {{x2 (0.00395759 x1+0.0113862 x2-0.000199939 x3-0.000556137
x4)+x3 (0.000211963 x1-0.000199939 x2+0.00118147 x3-0.00043913 x4)+x1
(0.0284435 x1+0.00395759 x2+0.000211963 x3+0.0357403 x4)+(0.0357403
x1-0.000556137 x2-0.00043913 x3+0.0649449 x4) x4}}

alternatively you can write the input as Dot[s, t, s\[Transpose]], where
\[Transpose] can be entered as <esc>tr<esc>.

```

• Prev by Date: Re: can't find info about & /@ %
• Next by Date: Re: Thread::tdlen: Objects of unequal length