Mathematica:如何获取3Dplot命令绘制的数据点?

时间:2016-07-25 17:18:14

标签: wolfram-mathematica

我一直在使用几年前发布的关于如何从2D函数获取数据点的命令:

f = Sin[t];
plot = Plot[f, {t, 0, 10}]
points = Cases[
   Cases[InputForm[plot], Line[___], 
    Infinity], {_?NumericQ, _?NumericQ}, Infinity]; 

并将其导出到数据文件:

Export["data2/name_"<>ToString[N[index]]<>"&"<>ToString[N[a]]<>".dat",points1,"Table","FieldSeparators"->" "];

但是,现在我必须对3Dplot案例概括这个命令,我试图查看有关Cases和List3Dplot命令的文档,但不幸的是我无法弄明白。有人有建议吗? 我很欣赏它。谢谢。

1 个答案:

答案 0 :(得分:1)

使用Cases

Flatten[Cases[
   InputForm@Normal@Plot3D[Sin[x y], {x, -1, 1}, {y, -1, 1}]  , 
   Polygon[x_, ___] -> x, Infinity], 1] // Union

使用EvaluationMonitor

Reap[Plot3D[z = Sin[x y], {x, -1, 1}, {y, -1, 1}, 
   EvaluationMonitor :> Sow[{x, y, z}]]][[2, 1]];