2016-07-25 8 views
1

Ich habe einige Jahre mit dem Befehl geschrieben hier vor, wie Datenpunkte aus einer 2D-Funktion zu erhalten:Mathematica: Wie erhält man Datenpunkte, die mit dem Befehl 3Dplot gezeichnet werden?

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

Und es in eine Datendatei exportieren:

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

jedoch Ich muss jetzt diesen Befehl für den 3Dplot-Fall verallgemeinern, ich habe versucht, die Dokumentation über Cases und List3Dplot-Befehle zu sehen, aber leider konnte ich es nicht herausfinden. Hat jemand einen Vorschlag? Ich würde es sehr schätzen. Vielen Dank.

+0

diese Antwort: http://stackoverflow.com/a/5364257/1004168 auf die 2d Frage sollte für 'Plot3D' arbeiten. (und beachte den Kommentar, den ich dazu gemacht habe) – agentp

Antwort

1

mit Cases:

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

mit EvaluationMonitor:

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