2010-01-08 119 views
7

我試圖做一個最適合在matlab中的散點圖,我可以使用散點圖(x1,x2)或scatterplot(x1,x2)得到一個散點圖,但是基本擬合選項被遮蔽掉,lsline返回錯誤'找不到允許的線型。一事無成」最佳擬合散點圖線

任何幫助將是巨大的,

感謝, 喬恩。

+0

你可以發佈你的確切代碼嗎? scatter(x1,x2)後面跟着lsline對我來說工作正常... – 3lectrologos 2010-01-08 02:04:04

+3

這個「不是編程相關」是怎麼回事... – Rook 2010-01-08 02:16:56

回答

21

lsline僅在統計工具箱中可用,您是否有統計工具箱?更一般的解決方案可能是使用polyfit

您需要使用polyfit來適合您的數據。假設你在y有一些數據,你在x有相應的域值(即你有數據的任意f近似y = f(x)),那麼你可以按照如下擬合的線性曲線:

p = polyfit(x,y,1); % p returns 2 coefficients fitting r = a_1 * x + a_2 
r = p(1) .* x + p(2); % compute a new vector r that has matching datapoints in x 

% now plot both the points in y and the curve fit in r 
plot(x, y, 'x'); 
hold on; 
plot(x, r, '-'); 
hold off; 

需要注意的是,如果你想通過將polyfit的最後一個參數更改爲curvefit的維度,可以將任意多項式擬合到數據中。假設我們把這個維度d,你會收到在pd+1係數,它代表一個多項式特性符合的f(x)估計:

f(x) = p(1) * x^d + p(2) * x^(d-1) + ... + p(d)*x + p(d+1) 

編輯,如在註釋中提到,你也可以使用polyval計算r ,它的語法如下:

r = polyval(p, x); 
+6

您可以使用** polyval **來幫助您評估多項式 – Amro 2010-01-08 02:13:29

+0

@Amro I有同樣的問題找到最合適的線。你確定答案是正確的嗎?我不確定,因爲我認爲如果最佳擬合線條選擇正確,線條上方的點數必須等於線條下方的點數,是不是?我不確定,你的想法是什麼? – Fatime 2013-08-15 13:03:43

+0

@MarkElliot你對我的評論有什麼想法? – Fatime 2013-08-15 13:05:14

0

Infs,NaNs和複數的虛數部分在數據中被忽略。

曲線擬合工具提供了一個靈活的圖形用戶界面,您可以交互地將曲線和曲面擬合到數據和視圖。您可以:

創建,打印和比較多個擬合

使用線性或非線性迴歸,插值,局部平滑回歸,或自定義方程

查看擬合優度擬合統計,顯示confidenceintervals和殘差,去掉異常值和評估與validationdata

擬合自動生成用於裝配和plottingsurfaces代碼,或出口到適合工作空間進一步分析