Нумерация таблиц в Mathematica и Grid - PullRequest
1 голос
/ 26 августа 2011

Я новичок в Mathematica. Я постараюсь сделать все возможное, чтобы написать это эффективно.

У меня два вопроса:

1: У меня есть три таблицы, которые дают мне значения {x1, y1, z1}, {x2, y2, z2} ... Код приведен ниже:

    Table[Table[Table[ {xcord, ycord, zcord},  
                       {xcord, 0, 50, 5}],  
                       {ycord, 0, 50,5}],   
                       {zcord, 50, 150, 10}]  

Теперь мне нужен вывод, подобный этому

{1,x1,y1,z1}

{2,x2,y2,z2}

{3,x3,y3,z3}

.
.
{n,xn,yn,zn}

Есть две проблемы с этим.

Во-первых, мои результаты форматируются как-то так: {x1, y1, z1}, {x2, y2, z2} .... {xn, yn, zn}, но я хочу, чтобы они форматировались следующим образом:

 {x1,y1,z1}

 {x2,y2,z2}

 {x3,y3,z3}

 .
 .
 {xn,yn,zn}

Во-вторых, я не могу нумеровать каждый набор элементов, добавляя номера перед каждым набором элементов, например

{1,x1,y1,z1}

{2,x2,y2,z2}

{3,x3,y3,z3}

.
.
{n,xn,yn,zn}

Я пытался составить отдельные таблицы для каждого набора координат и пронумеровать их, соответствующие каждому набору координат. Затем я попытался собрать каждый из них в отдельные столбцы и присоединиться к ним, но все же я не добился успеха.

2: Я хотел бы разделить значения, полученные из таблиц выше, в систему сетки, как показано ниже. Что-то вроде того, как мы все делаем в Excel, где все значения находятся в отдельных ячейках.

                 Number          X values  Y Values  Z values
                     1            x1        y1       z1
                     2            x2        y2       z2
                     .
                     .
                     n            xn        yn        zn

Ответы [ 2 ]

3 голосов
/ 26 августа 2011

Возможно, это то, что вы ищете.

Номера элементов добавляются двумя альтернативными методами, давая c и d.

a = Table[Table[Table[{xcord, ycord, zcord}, {xcord, 0, 50, 5}],
    {ycord, 0, 50, 5}], {zcord, 50, 150, 10}];
b = Flatten[a, 2];
c = MapIndexed[Flatten[{First[#2], #1}] &, b];
d = Transpose[Prepend[Transpose[b], Range[Length[b]]]];
Print[Row[{"c==d? ", c == d}]]
TableForm[Append[Take[c, 5], Table[".", {4}]],
 TableHeadings -> {None,
   {"Number", "X Values", "Y Values", "Z Values"}}]

c == d?True

Число X Значения Y Значения Z Значения

1 0 0 50

2 5 0 50

3 10 0 50

4 15 0 50

5 20 0 50

.,,.

2 голосов
/ 26 августа 2011

Возможно:

i = 0; t2 = 
 Grid[Join[{{"Number", "X Values", "Y Values", "Z Values"}}, 
   Flatten[Table[{++i, xcord, ycord, zcord}, 
                              {xcord, 0, 50, 5}, 
                              {ycord, 0, 50, 5}, 
                              {zcord, 50, 150, 10}], 2]], 
 Frame -> All]

enter image description here

...