用逗号从Mathematica导出数据

3
我正在以这种方式从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

我简直不敢相信我花了整整一天的时间来尝试弄清楚它。 - Proj_UK
1
@Proj_UK,我想我们以前都经历过这种情况,而且很可能会再次遇到。这就是生活。 - rcollyer
2
$ExportFormats 将为您提供支持的格式的完整列表... 但请注意,并非所有格式都得到了充分的支持(抱歉用词不当)。 - Dr. belisarius
1
Mma还会尝试从文件扩展名猜测您想要的格式,因此Export["mydata.csv", x]也可以工作。 - Simon
1
@rcollyer 在导入和导出文档页面的标题右侧几个像素处可以找到一个链接(橙色字体),该链接指向格式列表。 - Sjoerd C. de Vries
显示剩余3条评论

2
作为附注,请注意您可以只使用一个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
*)

感谢您让我知道,您之前也提到过它...但由于某种原因,我习惯了像这样编写表函数。 - Proj_UK
@Proj 不用谢。请记住,使用这种结构在时间和内存使用方面效率更高。 - Dr. belisarius
谢谢告诉我这些好处,也许我会尝试像你一样养成这种写作习惯。 - Proj_UK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接