2017-04-24 12 views
2

2つの配列間の最適なフィットを見つけるために、Matlab R2016aにカーブフィットを使用しています。 1つの配列は、指定された緯度と経度で特定の値を表し、もう1つの配列は値が収集された日付を表します。カーブフィットから残差を抽出する方法

カーブフィットツールでは、残差をプロットするだけでなく、最適な線を見つけることができます。残差は私が気にするものですが、残差をワークスペースにエクスポートすると、それらは1列の数値として表されます。これは、元の配列とのその残差の関係の識別情報なしでは役に立ちません(つまり、どのX、Yペアがそれぞれの残差に対応していますか?)

カーブフィットツールの残差グラフのデータはまさに私が欲しいものです。これを使えるようにエクスポートする方法はありますか?

答えて

1

cftoolは、fitを中心に使用します。フィットとその残差をさらに調べるためにできることは、フィットをワークスペースにエクスポートすることです。 Curve Fitting Toolウィンドウの上部にある「Fit」メニューから「Save to Workspace」を選択します。このフィットオブジェクト(曲線の場合はcfit、サーフェスの場合はsfit)を使用すると、カーブフィッティングツールと同じ解析を行うことができます。

フィットを取得し、残差のプロットを作成し、残差を計算する方法を説明します。結果のイメージを以下に示します。このコードでは、residuals変数には、各サンプルペアに属する各要素のフィットの残差がxyに含まれています。

% 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

関連する問題