Matlab's mrdivide mit 2 quadratischen Matrizen simulieren

Ich habe 2 19x19 Quadratmatrizen (a & b) und ich versuche, den Schrägstrich-Operator (mrdivide) zu verwenden, um eine Division so durchzuführen, dass

c = a / b

Ich versuche dies in OpenCV zu implementieren. Ich habe ein paar Leute gefunden, die @ vorschlagcv::solve aber bisher konnte ich nichts finden, das mir ein Ergebnis nahe bei matlab liefert.

Hat jemand eine Idee, wie ich mrdivide mit opencv implementieren könnte?

Ich habe den folgenden Code ausprobiert:

cv::Mat mldivide(const cv::Mat& A, const cv::Mat& B ) 
{
    //return  b * A.inv();
    cv::Mat a;
    cv::Mat b;
    A.convertTo( a, CV_64FC1 );
    B.convertTo( b, CV_64FC1 );

    cv::Mat ret;
    cv::solve( a, b, ret, cv::DECOMP_NORMAL );

    cv::Mat ret2;
    ret.convertTo( ret2, A.type() );
    return ret2;
}

Ich habe dann mrdivide wie folgt implementiert:

cv::Mat mrdivide(const cv::Mat& A, const cv::Mat& B ) 
{
   return mldivide( A.t(), B.t() ).t();
}

(Bearbeite: Laut den Antworten gibt mir dies tatsächlich die richtige Antwort, wenn ich es richtig verwendet habe!)

Dies gibt mir eine falsche Antwort, also nichts wie Matlab. Wie aus den Kommentaren hervorgeht habe ich auch versucht

cv::Mat mrdivide(const cv::Mat& A, const cv::Mat& B ) 
{
    return A * B.inv();
}

Dies gibt die gleiche Antwort wie oben, ist aber auch falsch.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage