Нумерация таблиц в Mathematica и Grid

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

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

Q1: У меня есть три таблицы, которые дают мне значения как {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

person Proj_UK    schedule 26.08.2011    source источник
comment
Между прочим, вам не нужно вкладывать Table таким образом. Он принимает несколько итераторов, т. е. Table[Table[ i + j, {j, 10}],{i,10}] эквивалентно Table[ i + j, {i, 10}, {j, 10}]. Обратите внимание, порядок итераторов обратный.   -  person rcollyer    schedule 26.08.2011
comment
Спасибо @rcollyer за то, что сообщили мне альтернативный способ...   -  person Proj_UK    schedule 02.09.2011


Ответы (2)


Возможно:

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]

введите здесь описание изображения

person Dr. belisarius    schedule 26.08.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"}}]

с==г? Истинный

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

1 0 0 50

2 5 0 50

3 10 0 50

4 15 0 50

5 20 0 50

. . . .

person Chris Degnen    schedule 26.08.2011