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. > > > >
- References:
- Thread::tdlen: Objects of unequal length in
- From: Aaron <aaron.sokolik@gmail.com>
- Thread::tdlen: Objects of unequal length in