2011-02-26 52 views
3

我正在用Mathematica處理大型輸入數組,它看起來像我無法處理大於(或等於)1024 * 1024和81 * 81 * 81的任何東西。這是正常的嗎?我應該能夠對這些輸入數據進行計算嗎?如果是這樣,怎麼樣?在Mathematica中處理大數據

+0

你能指定你想要執行什麼樣的「進程」嗎? – 2011-02-26 01:53:45

+1

您應該可以導入帶有1024 * 1024元素的導出數據 - 並不那麼大。你能提供更多細節嗎? – Simon 2011-02-26 03:33:36

+0

請注意1024^2/81^3 = 2(aprox)。所以你的限制是不一致的。 – 2011-02-27 05:24:58

回答

3

我認爲這取決於您正在執行什麼計算

例如,在一個非常溫和的膝上型:

Clear["Global`*"]; 
k = 2000; 
Timing[a = Table[i j + i - j, {i, k}, {j, k}]; 
[email protected]] 

需要20秒。

矩陣相乘高達1000×1000:

f[n_] := Table[RandomInteger[{1, n}], {n}, {n}]; 
ListLinePlot[ 
Table[{n, [email protected]@(#.#) &@f[n]}, {n, 100, 1000, 100}]] 

enter image description here

所以,這在很大程度上取決於你想計算一下。

+0

我明白了。那麼,我的程序所做的就是評估一個1/2/3維數組的每個單元,並用它進行一些計算。現在處理大量輸入並不重要,但我只是想知道是否有任何方法可以加快計算速度。 – 2011-02-27 19:19:26

+0

@Ricky從使用函數代替循環結構,通過獲得機器中並行內核的優勢,以及使用真正的怪物處理網格,有很多技巧可用。但是沒有一個適合所有情況的銀彈。你需要告訴我們更多關於你的具體問題。 – 2011-02-27 20:59:01

+0

@Ricky Robinson你檢查了你的操作需要多長時間才能完成一個元素? – acl 2011-02-28 11:41:33