Ich habe zwei Vektoren mit Fließkommazahlen, die bis auf einen kleinen Fehler die gleichen Werte enthalten, aber nicht unbedingt auf die gleiche Weise sortiert sind; zum Beispiel, A=rand(10);a=eig(A);b=eig(A+1e-10);
(denken Sie daran, dass eig
gibt die Eigenwerte in keiner bestimmten Reihenfolge aus).
Ich muss eine Permutation finden p
die mit den entsprechenden Elementen übereinstimmen, d. h. p=mysterious_function(a,b)
tal que norm(a-b(p))
klein ist.
Gibt es eine vorhandene Funktion, die dies in eine vernünftige und sichere Weise tut, oder muss ich wirklich meine eigene langsame und schlecht-Fehler-überprüft-Implementierung ausrollen?
Ich benötige dies vorerst nur zu Testzwecken, es muss nicht übermäßig optimiert werden. Beachten Sie, dass die Lösung, die das Sortieren beider Vektoren mit sort
schlägt fehl, wenn Vektoren komplexe Argumente mit gleichem Modul enthalten, wie die typische Ausgabe von eig()
.