Re: Thread::tdlen: Objects of unequal length in
- To: mathgroup at smc.vnet.net
- Subject: [mg127766] Re: Thread::tdlen: Objects of unequal length in
- From: Sseziwa Mukasa <mukasa at gmail.com>
- Date: Mon, 20 Aug 2012 21:29:03 -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>
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