在 Mathematica 中绘制来自 c++ 的二维点阵数据

Plotting 2D lattice data from c++ in Mathematica

我有一个(可能很愚蠢的)问题:

如何在 Mathematica (9) 中绘制由 C++ 程序生成的 D 格数据? (我直觉地认为这不会太难,但是使用 google、Whosebug 等。我找不到任何解决方案)

目前我正在尝试在每行的形式的列中给出数据:

xcoordinate ycoordinate value

我发现原则上可以通过使用 MatrixPlot[] 来解决这个问题,但是对于这个问题,必须以与大多数其他绘图程序不兼容的矩阵形式提供数据,所以我想尽可能避免这种情况.

我是 Whosebug 的新手,有点担心答案的要求。我尽力了:

从问题中给出的事实来看,我不明白为什么不简单地使用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 将是 {x,y,z} 的平面列表 d2 将是相同列表的打乱形式

两者都会产生相同的漂亮的波浪图,起源于 {0,0,1}

据我所知,ListPlot3D 从 Mathematica 8 开始可用。