2017-04-24 9 views
2

Ich verwende Kurvenanpassung in Matlab R2016a, um die beste Anpassung zwischen zwei Arrays zu finden. Ein Array repräsentiert einen bestimmten Wert bei einer gegebenen Breite und Länge und das andere Array repräsentiert das Datum, an dem der Wert gesammelt wurde.So extrahieren Sie Residuen aus curvefit

Mit dem Kurvenanpassungswerkzeug kann ich eine Linie finden, die am besten passt und die Residuen darstellen. Die Residuen sind alles, was mir wichtig ist. Wenn ich jedoch die Residuen in den Arbeitsbereich exportiere, werden sie als eine Spalte von Zahlen dargestellt. Dies ist für mich ohne die identifizierende Information der Beziehung dieses Restes zu den ursprünglichen Arrays nicht hilfreich (dh welchem ​​X-, Y-Paar entspricht jedes Residuum?)

Die Daten aus dem Restdiagramm im Kurvenanpassungstool sind genau was ich will. Gibt es eine Möglichkeit, dies auf eine Weise zu exportieren, die es nutzbar macht?

Antwort

1

Die cftool verwendet fit in ihrem Herzen. Was Sie tun können, um die Passform und ihre Residuen weiter zu erforschen, ist der Export an Ihren Arbeitsplatz. Führen Sie dazu im Menü "Kurvenanpassung" oben im Menü "Anpassen" die Option "Speichern im Arbeitsbereich" aus. Mit diesem Anpassungsobjekt (cfit für eine Kurve oder sfit für eine Oberfläche) können Sie dieselben Analysen und mehr wie mit dem Kurvenanpassungswerkzeug durchführen.

Lassen Sie mich veranschaulichen, wie Sie eine Anpassung erhalten, erstellen Sie eine Auftragung der Residuen und wie Sie die Residuen berechnen. Das resultierende Bild wird unten gezeigt. Im Code enthält die Variable residuals die Residuen der Anpassung, wobei jedes Element zu jedem Probenpaar in x und y gehört.

% Generate data 
rng default 
x = sort(rand(10, 1)); 
y = randn(size(x)) - 3*x; 

% Fit a line 
fitted = fit(x, y, fittype('poly1')); 

% Plot fitted line with data 
figure 
subplot 311 
plot(fitted, x, y) 

% Plot residuals 
subplot 312 
plot(fitted, x, y, 'residuals)') 
ylabel residuals 

% Get residuals 
residuals = y - fitted(x); 

% Create stem plot of residuals 
subplot 313 
stem(x, residuals) 
legend residuals 
xlabel x 
ylabel residuals 

Result of the code in the answer

Verwandte Themen