2016-04-01 8 views
0

Ich bin neu in Matlab. Ich versuche ein Programm zu schreiben, wo eine Gleichung einer Linie oder eines Kreises/einer Kurve gegeben wird. Ich kann den Satz von x, y Koordinaten erhalten (vorzugsweise als 2D Array), die einen gewissen Abstand voneinander haben, sagen wir jede Einheit oder Hälfte Einheit der Linienlänge oder Bogenlänge.Sampling x, y Koordinaten aus einer Gleichung einer Linie oder Kurve

Zum Beispiel habe ich eine lineare Linie, die bei (-2, 5) beginnt, hat eine Steigung von -1/4, ist 100 Einheiten lang und ich möchte die x, y-Koordinate jede 1 Einheit auf dieser Linie. Gibt es eine Funktion, die das tut, oder muss ich die Schleifen selbst schreiben?

Antwort

1

Ihre Funktion definiert:

f = @(x) -x./4 + 4.5; 

Wenn Sie x wollen eine 100-Einheit lange Reihe in Schritten von 1 sein, können Sie es wie erklären können:

x = -2:97; 

Wenn Sie x sein wollen ein 100 Einheiten langes Array von -2 bis z 50 (oder jeder beliebigen Endpunkt) Sie erhalten diese mit:

x = linspace(-2,50,100) 

(100 Punkte ist Standard für linspace, so dass Sie nicht wirklich benötigen, 100. schreiben Sie den Parameter für jede beliebige Anzahl von Punkten verwenden können .)

Ihre y Array jetzt ist:

y = f(x); 

Wenn Sie möchten, können Sie jetzt eine Matrix mit allen Koordinaten machen:

coordinates = [x',y'] 
Verwandte Themen