Odległość euklidesowa między dwoma punktami o współrzędnych przechowywanych jako łańcuchy


0

Muszę znaleźć odległość euklidesową między dwoma punktami. Mam połączone współrzędne w jednej komórce. Każdy zestaw współrzędnych jest podobny (x1,y1,z1) i (x2,y2,z2).

Jak mogę to zrobić w programie Excel?


Mówisz, że współrzędne są połączone. Czy to oznacza, że ​​masz współrzędne x, yiz w oddzielnych komórkach gdzieś w skoroszycie?
Excellll

Opierając się na twoim komentarzu do odpowiedzi kazoni, brzmi to tak, jakby twoje pytanie nie dotyczyło odległości euklidesowej, lecz sposobu analizowania współrzędnych rozdzielonych przecinkami. Czy to jest poprawne?
fixer1234

Tak, muszę użyć ich osobno, jak w euklidesowej formule odległości
Nidheesh

Odpowiedzi:


1

Wypróbuj następującą funkcję zdefiniowaną przez użytkownika (UDF) :

Public Function distance(s1 As String, s2 As String) As Double
    Dim zum As Double, i As Long
    ary1 = Split(s1, ",")
    ary2 = Split(s2, ",")

    zum = 0
    For i = 0 To 2
        zum = zum + (CDbl(ary1(i)) - CDbl(ary2(i))) * (CDbl(ary1(i)) - CDbl(ary2(i)))
    Next i

    distance = Sqr(zum)
End Function

Funkcje definiowane przez użytkownika (UDF) są bardzo łatwe w instalacji i obsłudze:

  1. ALT-F11 wyświetla okno VBE
  2. ALT-I ALT-M otwiera nowy moduł
  3. wklej rzeczy i zamknij okno VBE

Po zapisaniu skoroszytu UDF zostanie z nim zapisany. Jeśli korzystasz z wersji programu Excel później niż w 2003 r., Musisz ją zapisać plik jako .xlsm, a nie .xlsx

Aby usunąć UDF:

  1. wywołaj okno VBE jak powyżej
  2. usuń kod
  3. zamknij okno VBE

Aby użyć UDF z Excela:

= odległość (A1, A2)

Aby dowiedzieć się więcej o makrach w ogóle, zobacz:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

i

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

i po szczegóły na temat UDF, zobacz:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Makra muszą być włączone, aby działało!

Oto przykład:

enter image description here


0

=sqrt(power(x2-x1,2)+power(y2-y1,2)+power(z2-z1,2))

Lub jako Artykuł w Wikipedii stwierdza:

Euclidean Distance Formula for 3 Dimentions

Edytować: Zobaczyłem, że masz połączone komórki. To trochę komplikuje. Jeśli możesz oddzielić 3 części każdej współrzędnej, jest to trywialne. W przeciwnym razie muszę wiedzieć trochę więcej na temat zakresu liczb, o których możemy mówić? (Myślę trochę =left() =mid() =right magia.)


Znam formułę, o którą zapytałem, jak zastosować tę formułę dla dwóch połączonych komórek w programie Excel
Nidheesh

Czy twoje komórki są ustawione tak, jak punkt 1 to [3] [5] [7], a punkt 2 to [4] [8] [12] czy jest to [3,5,7] [4,8,12]?
kazoni

jak [3,5,7], [1,2,3]
Nidheesh

zakres każdej współrzędnej wynosi 1 do 5
Nidheesh

Ok, możesz uciec z czymś takim (załóżmy, że x1 to komórka A1, x2 to komórka A2): =sqrt(power(left(A2,1)-left(A1,1),2) + power(mid(A2,3,1)-mid(A1,3,1),2) + power(right(A2,1)-right(A1,1),2))
kazoni
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.