Экспорт данных из Mathematica с запятыми - PullRequest
3 голосов
/ 09 сентября 2011

Я экспортирую данные из mathematica таким образом в файл с расширением «dat».

numbercount=0;
exporttable =
   TableForm[
    Flatten[
     Table[
      Table[
       Table[{++numbercount, xcord, ycord, zcord}, {xcord, 0, 100, 5}], 
      {ycord, 0, 100, 5}], 
     {zcord,10, 100, 10}],
    2]];
Export["mydata.dat", exporttable]

Теперь, что происходит, это файл «mydata.dat», вывод которого выглядит так:

1  0   0   10
2  5   0   10
3  10  0   10  and so on

Но я хочу, чтобы данные отображались в файле mydata.dat следующим образом.

1, 0,  0,  10
2, 5,  0,  10
3, 10, 0,  10  and so on

Если вы, наблюдатель, я хочу запятую после каждого первого, второго и третьего числа, но не послечетвертое число в каждой строке.

Я пробовал этот код, он вставляет запятые между цифрами, но для запуска требуется много времени, так как у меня огромные объемы данных для экспорта. Я также чувствую, что кто-то можетвозможно, придумать лучшее решение.

numbercount=0;
exporttable =Flatten[
              Table[
               Table[
                Table[{++numbercount, xcord, ycord, zcord}, {xcord, 0, 100, 5}], 
               {ycord, 0, 100, 5}], 
              {zcord,10, 100, 10}], 
             2];
x = TableForm[Insert[
              exporttable[[i]], ",", {{2}, {3}, {4}}], {i, 1, Length[exporttable]}];
Export["mydata.dat", x]

Ответы [ 2 ]

9 голосов
/ 09 сентября 2011

Вы пытались экспортировать его как файл CSV? Третий параметр Export - это тип файла, поэтому вы должны ввести

Export["mydata.dat", x, "CSV"]

Чтобы добавить к этому, вот категорический список и алфавитный список доступных форматов в Mathematica.

2 голосов
/ 10 сентября 2011

В качестве примечания обратите внимание, что вы можете создать свой список только с одной командой Table и без явных переменных индекса :

exporttable1 =  MapIndexed[Join[#2, #1] &, 
                                Flatten[Table[{xcord, ycord, zcord}, 
                                                {zcord, 10, 100, 10}, 
                                                {ycord, 0, 100, 5}, 
                                                {xcord, 0, 100, 5}], 2]]

exporttable1 == exporttable
(*
-> True
*)
...