Ich habe eine Funktion sagen wir sq_dist()
. Diese Funktion kann wie folgt aufgerufen werden: sq_dist(a,b)
oder sq_dist(a)
. Diese Funktion beinhaltet langsame Operationen und daher versuche ich, eine Mex-Version daraus zu machen, in der Hoffnung, dass es schneller läuft. Ich benutze dazu die Matlab Coder GUI. Um Eingabetypen zu definieren (im Eingabebildschirm definieren), verwende ich eine Funktion, die sq_dist(a,b)
und sq_dist (a
) aufruft, um die Eingabe automatisch zu bestimmen. Dies gibt mir einen Fehler: Error determining type for input sq_dist:b. Index exceeds matrix dimensions
. Hier ist meine Funktion:Wie definiert man Eingangstypen in Matlab Coder für eine Funktion mit einer variierenden Anzahl von Eingaben?
n = 50;
dim = 50;
a = rand(n, dim);
b = rand(n, dim);
u = sq_dist(a, b);
v = sq_dist(a);
Also, da sq_dist kann auf verschiedene Arten aufgerufen werden Ich bin nicht sicher, wie seine Eingabe in den Coder zu definieren.
Wenn ich manuell die Eingabe zu double :inf x :inf
für a
und b
die mex-Datei kompiliert wird, aber ich einen Laufzeitfehler erhalten: Function 'sq_dist' called with wrong number of arguments: expected 2, received 1.