我一直在使用几年前在这里发布的关于如何从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的情况下,我已经尝试查看了关于case和List3Dplot命令的文档,但不幸的是我还不能弄清楚。有谁有建议吗?我会很感激的。谢谢。
发布于 2016-07-25 18:01:53
使用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]];
https://stackoverflow.com/questions/38573854
复制相似问题