2017-08-21 84 views
0

繪製2D點陣數據我有一個(可能是愚蠢的)問題:從C++中的Mathematica

如何可以繪製在數學(9)由一個C++程序產生d-點陣數據? (我直覺地認爲這不能太硬,但與谷歌,計算器等我找不到任何解決方案)

  • 什麼輸出格式這是最好的?
  • 哪個mathematica命令最好?

在此刻,我想給出來的數據列,每一行的形式爲:

xcoordinate ycoordinate value 

我發現一個原則上可以通過解決這個MatrixPlot [],但因爲這個數據必須以與大多數其他繪圖程序不兼容的矩陣形式提供數據,所以如果可能的話我想避免這種情況。

+1

這同一列表問題會更適合https://mathematica.stackexchange.com。 –

+0

Sry。我不知道有這樣的事情存在。 –

回答

2

我是StackOverflow的新手,有點擔心答案的要求。我盡了最大的努力:

從問題中給出的事實,我看不出爲什麼不簡單地使用ListPlot3D?您不需要數據集中的任何特定順序,Mathematica會嘗試對數據進行排序。

首先,你可以在你的C++數據導出到窗體文件

x1 y1 value1 
x2 y2 value2 
x3 y3 value3 
... 

這種格式的文件,可以使用

Import["path/to/file.txt", "Table"] 

進口然後,您將有一個矩陣像下面的例子:

d1 = Flatten[Table[{x, y, Cos[Sqrt[x^2 + y^2]]}, {x, 0, 6, 0.2}, {y, 0, 6, 0.2}], 1]; 
d2 = RandomSample[d1] 
ListPlot3D[d1] 
ListPlot3D[d2] 

d1將是的平面列表 d2將在洗牌形式

兩者都會產生一波發起的同一不錯情節{0,0,1}

據我所知,ListPlot3D可因爲數學8.