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

MathGroup Archive 2012

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

Search the Archive

Re: Thread::tdlen: Objects of unequal length in

  • To: mathgroup at smc.vnet.net
  • Subject: [mg127772] Re: Thread::tdlen: Objects of unequal length in
  • From: Aaron Sokolik <aaron.sokolik at gmail.com>
  • Date: Mon, 20 Aug 2012 21:31:04 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <20120820081407.058F0681E@smc.vnet.net>

Thanks for the help.  Everything works with the "First" wrapper.

On Mon, Aug 20, 2012 at 8:35 AM, Sseziwa Mukasa <mukasa at gmail.com> wrote:

> The {} indicate a list, but lists can be nested so a structure of the form
> {{...}} is a list of length one whose first element is another list.  I'm
> not sure what you are after with the MapThread[Mean,
> Sequence[{{testdata}}]] expression, my guess is you're computing the mean
> along the rows of an array.  Assuming your data is in a 2D array then
> Last[testdata] is the last row of your data and what you expect is the
> number of columns (length of last row) to be the same as the number of
> computed means.
>
> Assuming you want the means along the rows I would have done:
> Mean/@Transpose[testdata] (/@ is the infix form of Map so this is
> equivalent to Map[Mean,Transpose[testdata]]) which is probably easier to
> interpret.  Otherwise, just take the first element of the result of your
> MapThread expression: First[MapThread[Mean, Sequence[{{testdata}}]]]
> (alternatively MapThread[Mean, Sequence[{{testdata}}]][[1]] or
> Last[MapThread[Mean, Sequence[{{testdata}}]]]).
>
> Regards,
>         Sseziwa
>
> On Aug 20, 2012, at 4:14 AM, Aaron wrote:
>
> > I'm new to Mathematica and trying to run rebuild some programs from
> other systems in Mathematica.  I'm operating on large data lists and
> receiving the unequal length error.  However, if I simply paste the output
> without the extra curly bracket into an operation, everything works.
>  Obviously, copying and pasting wont work for functions... How can I get
> around this?
> >
> > Below are the functions I'm using to generate two lists from a single
> dataset:
> >
> > ln[13]:= MapThread[Mean, Sequence[{{testdata}}]]
> > Out[13]= {{15.0059, 14.9897, 15.0248,....}}
> >
> > ln[14]:= Last[testdata]
> > Out[14]= {14.9602, 14.8624, 15.3364, 15.0231,....}
> >
> > When I run Length on each of the outputs, I receive the proper number of
> datapoints for the Last function but receive an output of "1" for the Mean
> function.  If I paste the output with only 1 "{" though and run Length, I
> receive the proper output.
> >
> > I know this must be simple but I'm stuck.
> >
>
>




  • Prev by Date: Constraining a Location to Move Along a Plot in a Manipulate
  • Next by Date: Re: Thread::tdlen: Objects of unequal length in
  • Previous by thread: Re: Thread::tdlen: Objects of unequal length in
  • Next by thread: Re: Thread::tdlen: Objects of unequal length in