【问题标题】:Exporting Data from Mathematica with commas使用逗号从 Mathematica 导出数据
【发布时间】:2011-09-09 17:21:12
【问题描述】:

我正在以这种方式将数据从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]

【问题讨论】:

    标签: wolfram-mathematica export


    【解决方案1】:

    您是否尝试将其导出为 CSV 文件? Export的第三个参数是文件类型,所以你要输入

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

    此外,这里是 Mathematica 中可用格式的 categorical listalphabetical list

    【讨论】:

    • 我不敢相信我花了一整天的时间试图弄清楚
    • @Proj_UK,我想我们以前都去过那里,而且很可能还会再来。 C'est le vie。
    • $ExportFormats 将为您提供支持的格式的完整列表...但请注意,并非所有格式都得到完全支持(抱歉,文字播放)
    • Mma 也会尝试从文件扩展名中猜测您想要什么格式,因此Export["mydata.csv", x] 也可以使用。
    • @rcollyer 可以在导入和导出文档页面的标题右侧几个像素处找到指向格式列表的链接(橙色类型)。
    【解决方案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 欢迎您。请记住,使用这种类型的构造在时间和内存使用方面效率要高很多倍。
    • 感谢您让我知道这些好处,也许我会努力养成以您的方式编写它的习惯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    相关资源
    最近更新 更多