2011-09-09 58 views
3

我正在以這種方式將數據從mathematica導出到帶有「dat」擴展名的文件。用逗號從Mathematica導出數據

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] 

回答

9

你試過導出爲CSV文件?的Export第三個參數是文件類型,所以你鍵入

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

要添加到這一點,這裏是一個categorical list和可用的格式Mathematica中的alphabetical list

+0

它worked..Thanks很多.. –

+0

我不能」相信我花了整整一天的時間試圖找出它 –

+0

@proj_uk你應該知道CSV代表逗號分隔值,這是一種非常笨的格式,可以被Excel等許多程序讀取。 –

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 
*) 
+0

謝謝你讓我知道,你早些時候也提到過它..但由於某種原因,我很舒服,並用於編寫表格功能 –

+0

@Proj歡迎您。請記住,使用這種類型的結構在時間和內存使用上效率要高出許多倍。 –

+0

謝謝你讓我知道你的好處,也許我會盡量讓它成爲你寫作的習慣。 –