在 Mathematica 中绘制来自 c++ 的二维点阵数据
Plotting 2D lattice data from c++ in Mathematica
我有一个(可能很愚蠢的)问题:
如何在 Mathematica (9) 中绘制由 C++ 程序生成的 D 格数据?
(我直觉地认为这不会太难,但是使用 google、Whosebug 等。我找不到任何解决方案)
- 什么输出格式最适合这个?
- 哪个 mathematica 命令最好?
目前我正在尝试在每行的形式的列中给出数据:
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 开始可用。
我有一个(可能很愚蠢的)问题:
如何在 Mathematica (9) 中绘制由 C++ 程序生成的 D 格数据? (我直觉地认为这不会太难,但是使用 google、Whosebug 等。我找不到任何解决方案)
- 什么输出格式最适合这个?
- 哪个 mathematica 命令最好?
目前我正在尝试在每行的形式的列中给出数据:
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 开始可用。