2016-06-02 8 views
1

Ich habe das folgende 3D-Diagramm in MATLAB, das ich versuche, in Gnuplot zu plotten, aber nicht weiß, wie. In MATLAB, die x, y, z sind Matrizen, die in einem verschachtelten for-Schleife berechnet werden, dann aufgetragen:Konvertieren Sie folgenden Code für 3D-Plot in MATLAB in Code für Gnuplot?

w = 50 ; 
ww = 0:1:w ;    
d = 100 ; 
dd = 0:1:d ;    

for i=1:1:length(ww)   
    for j=1:1:length(dd)  
     x(i,j) = dd(i) ; % need to refer to array dd 
     y(i,j) = dd(j) ; 
     z(i,j) = <A complicated function ommitted for simplicity> 
    end     
end 

plot3(x,y,z) 

Wie würde ich die oben in Gnuplot Grundstück? Ich muss es für beliebige Werte von w und d tun. Ich verstehe, dass ich die splot Funktion brauche, aber ich bin ratlos, wie die Berechnung der x, y, z-Matrizen zu implementieren. Hilfe wird geschätzt!

Edit: Es scheint, wie die oben können die array und word Schlüsselwörter/Funktion getan werden, aber ich habe nicht in der Lage gewesen, es noch von GNU

Antwort

1

In gnuplot, indem Sie die Bereiche festgelegt und die Funktion zeichnen:

set xrange [0:50] 
set yrange [0:100] 
z(x,y) = exp(-(x**2 + y**2)/100.0) 
splot z(x, y) 

Wenn Sie das Raster ändern möchten, verwenden Sie set isosamples, das zu tun, wie

set isosamples 51,101 
+0

Holy Moly, Das ist so einfach, D Danke! Ich habe bekommen, was ich wollte – user1420

0

Sie könnten etwas betrügen, und erstellen Sie die gnuplot Plot-Datei zu implementieren Octave https://www.gnu.org/software/octave/

Assuking Sie haben Octave installiert:

Stellen Sie die Grafik-Toolkit in Oktaven gnuplot:

graphics_toolkit gnuplot 

Dann führen Sie Ihr p [Los-Skript.

Dann werfen Sie es zu einem gnuplot-Datei (unter der Annahme unter Linux läuft - in den Fenstern der x11 und/dev/null würde ändern müssen):

drawnow ("x11", "/dev/null", false, "gnuplot.gpt") 

Es jetzt eine Datei gnuplot.gpt sein sollte, das kann geladen werden durch gnuplot - Konsolenbefehl:

gnuplot -p gnuplot.gpt 
+0

Ich wusste nicht, Octave konnte gnuplot Skripte erzeugen. Werde das ausprobieren und zurückkommen – user1420

+0

Während ich das Plot und das Gnuplot-Skript generieren konnte, brauche ich den richtigen gnuplot-Code, um ihn in ein bestehendes Skript zu integrieren. Der auf diese Weise generierte Code ist kein richtiger Code, daher kann ich diese Antwort nicht akzeptieren. – user1420