Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Thread::tdlen: Objects of unequal length

  • To: mathgroup at smc.vnet.net
  • Subject: [mg121902] Re: Thread::tdlen: Objects of unequal length
  • From: Heike Gramberg <heike.gramberg at gmail.com>
  • Date: Thu, 6 Oct 2011 04:22:24 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201110050804.EAA07154@smc.vnet.net>

First of all, you should use Dot (.) for matrix multiplications; 
s*t*Transpose[s] will just multiply s, t, and Transpose[s] element-wise, 
but since Length[s] != Length[t] in your example, this fails.

Secondly, in Mathematica lists function both as row-vectors and 
column-vectors in matrix multiplications so there is no need for 
Transpose. You could simply do

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}};

s.t.s

Heike.


On 5 Oct 2011, at 10:04, SysInv wrote:

> 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...
>




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