MATLAB中怎麼把多條曲線擬合在同一圖中?

我指的是擬合為平滑曲線,不要plot(x1,y1,...xn,yn)那種,因為plot函數的效果和cftool相比太差,可cftool只能擬合單變數曲線,因此想求教一下有沒有什麼兩全其美的辦法?


plot 只是根據你的數據畫圖,也就是將相鄰數據用線段連結起來,本身沒有什麼擬合作用

如果你只是想得到平滑曲線,可以用插值,舉個例子:

x = linspace(0,2*pi,7);
y = sin(x);
plot(x,y)

這裡在 y = sin(x) 曲線的 [0 2*pi] 區間上取了 7 個點,作圖顯然不夠平滑。下面做Cubic spline 插值(當然也可以選擇其他插值方式) 處理:

xi = linspace(0,2*pi,50);
yi = spline(x,y,xi);
plot(x,y,"--",xi,yi)

這裡的圖一樣是 plot 繪製的,所以說是否平滑不是 plot 決定的,而是你的數據決定的

多條曲線插值也是類似的,常用的插值函數如 spline,interp1 都支持插值多條曲線(即使有不支持或者不方便(例如不同曲線的點數不同)的也可以寫個循環解決):

x = 0:2:20;
y = bsxfun(@besselj,(0:3)",x);
xi = 0:.1:20;
yi = spline(x,y,xi);
axes("colorOrder",lines(4)), hold on
plot(nan,nan,"k--",nan,nan,"k",x,y,"--",xi,yi), legend("x-y","xi-yi")


不明白題主想擬合什麼類型的數據?cftool可以擬合兩個變數的數據啊,還有各種擬合方式可選。

「老版本的cftool可以直接點擊「newfit」 導入數據並在同一幅圖裡擬合。如果你的matlab比較新,就用 cftool -v1 打開老版本的cftool。」——百度知道某大神的回答,親測好用。


你好,利用cftool工具箱大概就兩種方法,1.利用擬合函數重新畫一次,2.把兩張圖片利用matlab粘貼到一起處理,大致步驟就是:1、首先,把擬合的圖片print to figure,把兩個fig都打開;2、在一個圖中選擇曲線並複製(方法:按工具條上Tool選項下點擊Edit plot 按鈕,然後選擇曲線,點右鍵選copy)。3、把曲線貼到另一個figure中(同樣按下Tool選項下的Edit plot 按鈕,然後右鍵選paste)。4、根據需要加legend。


關鍵詞:Matlab,cftool多曲線擬合

上傳圖片質量捉雞。到我的擺渡網盤或者擺渡文庫下文檔看吧,完全免費!

http://pan.baidu.com/s/1i5LuqEh

https://wenku.baidu.com/view/314246d0541810a6f524ccbff121dd36a32dc4d7


hold on


推薦閱讀:

matlab中求信號相位,有沒有什麼好的方法?
山東大學電氣專業想進江蘇電網?
請教各位老師用基爾霍夫定律解這個電路?
西門子1P+N斷路器能否作為家庭總開關使用?
怎麼解決斷路器越級跳閘的問題?

TAG:MATLAB | 電氣工程 |