我有一个(可能是愚蠢的)问题:
如何在mathematica(9)中绘制由c ++程序生成的D-lattice数据? (我直觉上认为这不是太难,但谷歌,stackoverflow等我找不到任何解决方案)
目前我正试图在列中提供数据:
xcoordinate ycoordinate value
我发现原则上可以通过使用MatrixPlot []解决这个问题,但是为了这个,我必须以矩阵形式提供与大多数其他绘图程序不兼容的数据,所以我想尽可能避免这种情况。 / p>
答案 0 :(得分: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
将是{x,y,z}
的完整列表
d2
将以随机格式显示相同的列表
两者都会产生源自{0,0,1}
据我所知,自{Mathematica 8'以来ListPlot3D
可用。