2016-05-22 2 views
0

Ich habe zwei Matrix alsMatlab - Plot mehrere Zeilen mehrere Punkte und finden Sie die Länge jeder Zeile

A = [1 2 3; 4 6 7; 3 6 7] 
B = [2 5 6; 2 8 7; 2 8 5] 

ich plotten möchten eine Grafik zwischen diesen beiden Matrix, ich meine, in wie Art und Weise, dass A (1,1) als x-Koordinate und B (1,1) als Y-Koordinate des 1. Punktes. Ähnlich für den 2. Punkt A (1,2) als x und B (1,2) als Y und so weiter. Endlich sollte ich eine gerade Linie bekommen, die diesen Punkt für jede Reihe verbindet.

Und dann habe ich die Maßnahme die Länge der Linie für jede Zeile alle Punkte verbinden, so dass ich weiß, kann eine größere Länge, welche Zeile haben

ich versucht, dieses

for i=1:1:3 
    plot(A(i,:),B(i,:)), hold on; 
    end 

Ist es richtig, weil ich nicht in der lage bin zu interpretieren und wie man die länge auch misst ??

Antwort

1

Ihre Vorgehensweise scheint korrekt zu sein.

Um die Länge jeder Zeile berechnen würde ich diesen Code verwenden:

for i=1:1:3 
    len(i) = sum(sqrt(diff(A(i,:),1).^2+diff(B(i,:)).^2)); 
end 
1

Sie brauchen nicht for loop auf Grundstück. Mach einfach.

A = [1 2 3; 4 6 7; 3 6 7]; 
B= [2 5 6; 2 8 7; 2 8 5]; 

% Plot lines 
plot(A.',B.'); 

% Calculate length of lines 
length=sum(sqrt((diff(A,1,2).^2)+(diff(B,1,2).^2)),2); 
Verwandte Themen