2016-10-04 3 views
-4

Ich möchte eine einfache Funktion plotten, aber ich kann nicht herausfinden, wie es geht.PyPlot und Julia kann nicht plot x^2

dieser Code funktioniert

using PyPlot 
x = linspace(0,10,1000); y = log(x); 
plot(x, y, color="blue", linewidth=2.0, linestyle="-") 

aber der nächste Code nicht funktionieren

using PyPlot 
x = linspace(0,10,1000); y = x^2; 

plot(x, y, color="blue", linewidth=2.0, linestyle="-") 

ich nicht herausfinden, wie x von x zu multiplizieren.

Antwort

7

Sie müssen eine elementweise Potenzierung verwenden: x.^2.

using PyPlot 
x = linspace(0,10,1000); y = x.^2; 

plot(x, y, color="blue", linewidth=2.0, linestyle="-") 

In Julia v0.5 und höher, sollten Sie auch die element Version von log verwenden: y = log.(x). Die alten automatisch gesendeten Funktionen wie sin, log usw. sind im Release-Zyklus v0.6 als veraltet geplant.

+0

Danke, was ist elementweise? ist gültig tun 3. * 4 '? – exsnake

+1

@exsnake Die offizielle Dokumentation diskutiert [elementwise operations] (http://docs.julaulang.org/en/release-0.5/manual/mathematical- operations/?highlight=elementwise) kurz. Ich weiß nicht, was du mit '3. * 4'' meinst. Das wird funktionieren, aber es scheint eine übermäßig komplizierte Art zu sein, "12" zu schreiben. –

+0

Das war nur ein dummes Beispiel. Ich wollte damit meinen, es in Variablen zu verwenden, die keine Arrays sind. – exsnake

3

Plots.jl ermöglicht einen anderen Ansatz, wo man nur die Funktion angeben zu zeichnen und die Grenzen es plotten in:

using Plots 

plot(x->x^2, -3, 3) 

Hier x->x^2 ist eine anonyme Funktion. Alternativ können Sie eine Standard-Julia-Funktion definieren:

f(x) = x^2 
plot(f, -3, 3) 
Verwandte Themen