2009-12-22 488 views
6

我有從另一個程序導入Mathematica的數據(點),因此我可以繪製它。我可以控制點將如何寫入文件,所以我可以以任何我想要的方式放置它們。將它們導入Mathematica的最佳方式是什麼?正如我打算使用StreamDensityPlot,可變我得傳遞給StreamDensityPlot將不得不在以下方式:如何在Mathematica中以列表/數組的形式從文件導入數據

data = { 
     { 
      { a, b, c }, {a, b, c}, {a, b, c}, 
      { a, b, c }, {a, b, c}, {a, b, c}, 
      { a, b, c }, {a, b, c}, {a, b, c}, 
     } 
    ... 
     { 
      { a, b, c }, {a, b, c}, {a, b, c}, 
      { a, b, c }, {a, b, c}, {a, b, c}, 
      { a, b, c }, {a, b, c}, {a, b, c}, 
     } 
    } 

你會如何建議我把數據在中間的文本文件?我應該用什麼來導入它?我試過導入[「mytext.txt」,「List」],讓我的文本文件具有上面顯示的形式,但是看起來Mathematica認爲這些點是字符串,我無法對它們做任何事情。有沒有辦法將字符串轉換爲任意數據(儘管它們在新數據類型中是有效的)?

回顧:

  1. 是否有可能將字符串轉換,例如, 「5」 的數量,在數學?如果是,如何?
  2. 是否可以將字符串「{1,2,3}」轉換爲Mathematica中的列表?如果是,如何?
  3. 如Mathematica中所示,是否可以加載CSV文件作爲列表列表?

感謝

回答

9

將字符串轉換爲表達式與ToExpression完成。如果您有一個純文本文件foo.txt,格式與您的示例相同,那麼只需將其導入到Mathematica中,Get<< /path/to/foo.txt;將以您想要的方式導入和評估data,不需要文本到表達式轉換。

+2

數據= ToExpression [導入[「/文件夾/ yourimportfile.txt 「]]; – Christoph 2010-11-02 13:58:27

5

嘗試格式化您的數據文件是這樣的:

A, B, C, A, B, C, A, B, C 
A, B, C, A, B, C, A, B, C 
A, B, C, A, B, C, A, B, C 
... 

所以,你可以使用Mathematica的CSV導入。然後將每行分成導入後的點列表。

Partition[#, 3]& /@ Import["file.csv", "CSV"] 

另外,請記住,做數學科學記數法不同於C(或您使用的是寫入數據文件的任何一種語言。

相關問題