EDA365电子论坛网

标题: 用MATLAB拟合或插值后再用plot平滑曲线的两种方法 [打印本页]

作者: uqHZau    时间: 2020-4-17 09:27
标题: 用MATLAB拟合或插值后再用plot平滑曲线的两种方法

自然状态下,用plot画的是折线,而不是平滑曲线。

有两种方法可以画平滑曲线,第一种是拟合的方法,第二种是用spcrv,其实原理应该都一样就是插值。下面是源程序,大家可以根据需要自行选择,更改拟合的参数。

clc,clear;0 R7 e( z' r6 s* X  M/ X8 K/ @
a = 1:1:6;  %横坐标
! n0 g; H1 t3 c0 b* Bb = [8.0 9.0 10.0 15.0 35.0 40.0]; %纵坐标
( N' f) o1 w6 Hplot(a, b, 'b');   %自然状态的画图效果
3 ^. q# Q7 [' b4 k: [hold on;. |2 @) {( t1 p! E
%第一种,画平滑曲线的方法
& ^; U; n( K# uc = polyfit(a, b, 2);  %进行拟合,c为2次拟合后的系数' H' c( f6 J' q, {/ o: o, Q
d = polyval(c, a, 1);  %拟合后,每一个横坐标对应的值即为d- L  q; H4 X6 U& A
plot(a, d, 'r');       %拟合后的曲线

plot(a, b, '*');       %将每个点 用*画出来
  u5 e+ e) g4 d" u& ihold on;
' y$ y" u& q0 z" z3 v( i; N%第二种,画平滑曲线的方法
+ j3 s9 g5 ~$ Q' n  O% h1 fvalues = spcrv([[a(1) a a(end)];[b(1) b b(end)]],3);
0 o  u( F% g1 Y! `+ Hplot(values(1,: ),values(2,: ), 'g');

效果:

3 Z* G4 s3 S* Y- h

作者: Heaven_1    时间: 2020-4-17 16:57
拟合的方法比较好用




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2