Re: Exporting a List of Tables with different Lengths to a tabulator

• To: mathgroup at smc.vnet.net
• Subject: [mg110644] Re: Exporting a List of Tables with different Lengths to a tabulator
• From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
• Date: Wed, 30 Jun 2010 01:50:12 -0400 (EDT)
• References: <i0cor7\$bug\$1@smc.vnet.net>

```Hi Hemke,

My solution uses PadRight to make all matrices have the same lengths,
and ArrayFlatten to combine all matrices in a single rectangular one.

Some example matrices:

m = {{1, 2, 3}, {4, 5, 6}};
n = {{7, 8, 9}, {1, 2, 3}, {4, 5, 6}};
o = {{2, 4, 6}, {1, 3, 5}, {9, 7, 5}, {8, 6, 4}};

listA = {m, n, o};

The code:

mostRows = Max[Length /@ listA];
numColumns = Length[listA[[1, 1]]]; (*assumes, as given, that all
matrices have the same number of columns *)
newListA =
ArrayFlatten[{PadRight[#, {mostRows, numColumns}, Null] & /@
listA}];
Export["C:\\Documents and Settings\\Sjoerd\\Desktop\\New Text \
Document.tsv", newListA, "TSV"]

(The "TSV" part is superfluous if the filename already has this as
extension)

Cheers -- Sjoerd

On Jun 29, 2:27 pm, hemke <h.mae... at gmail.com> wrote:
> Hi,
>
> I am trying to export some data I imported and then manipulated with
> mathematica. I have a List of several Tables, i.e.
>
> ListA={TableA, TableB, TableC, ...}
>
> A typical Table looks like this:
>
> TableA={{1,2},{4,5},...}.
>
> The Tables in ListA all have the same number of columns but differing
> number of rows.  Now, I want to export these Tables into one tabulator
> separated file with the same structure, i.e. line N in the output file
> should contain the elements in row N of each Table, or in other words I
> want the following:
>
> TableA[[1,1]]   TableA[[1,2]]   TableB[[1,1]]   TableB[[1,2]]   .=
..
> TableA[[2,1]]   TableA[[2,2]]   TableB[[2,1]]   TableB[[2,2]]   .=
..
> ...             ...             ...       =
...
> TableA[[M-1,1]] TableA[[M-1,2]] TableB[[P,1]]   TableB[[P,2]]   ...
> TableA[[M,1]]   TableA[[M,2]]                     =
...
>
> Here I chose (as an example), Length[TableA]=M and Length[TableB]=P w=
ith
> M>P.
>
> I tried it with Export["myfile.dat", ListA] but it does not produce the
> desired output, instead it yields:
>
> {TableA[[1,1]],TableA[[1,2]]}   {TableA[[2,1]],TableA[[2,2]]}   ...
> {TableB[[1,1]],TableB[[1,2]]}   {TableB[[2,1]],TableB[[2,2]]}   ...
> ...                             ...
>
> (In the above, TableX[[i,j]] represents a number in the corresponding
> element of a table, and not the text "TableX[[i,j]]"... ;) )
>
> Ok, I hope I explained the problem sufficiently. Probably there is a
> simple solution but I just don't see it.
>