2016-07-11 16 views
1

Ich muss den RMS (Root Mean Square) -Fehler einer Ebene zu einer Reihe von 3D-Punkten passen. Ich benutze die pcfitplane Funktion, aber ich bekomme ein Array von Indizes als Ergebnis.Matlab Ebene fit - nicht in der Lage, den mittleren quadratischen Fehler zu bekommen

Mein Code:

% Create the point cloud object 
% XYZ is a N by 3 matrix containing the points 
ptCloud = pointCloud(XYZ); 
[~,rmse] = pcfitplane(ptCloud,maxDistance); 

% rmse is a 1 by N array, and the values are also from 1 to N! 

Was ich hier fehlt? Wie kann ich den RMS-Fehler korrekt erhalten?

Antwort

1

Sie interpretieren die docs nicht korrekt. Hier ist, wie die Prototypen zeigen:

[model,inlierIndices,outlierIndices] = pcfitplane(ptCloudIn,maxDistance) 
[___,rmse] = pcfitplane(ptCloudIn,maxDistance) 
[___] = pcfitplane(ptCloudIn,maxDistance,Name,Value) 

Der lange triple Strich bedeutet „alle Ausgänge Argumente aus dem oben gezeigten sytaxes“, nicht „ein Argument“. Wie Sie richtig bemerkt haben, erhalten Sie die inlierIndices zurück. Sie versuchen, etwas in der Art zu tun:

[~,~,~,rmse] = pcfitplane(ptCloud,maxDistance); 

Die drei Tilden sind der lange Unterstrich. Sie repräsentieren model,inlierIndices,outlierIndices. Hoffe, dass Sie auch mit zukünftigen Dokumenten helfen können.

+0

Oh! Das habe ich vermisst! Vielen Dank! – Pedro77

+0

Ja. Es ist schön, dass Sie die Dokumente vor dem Posten sehr deutlich gelesen und verstanden haben. Es passiert überraschend selten. –