展开全部
有两种方法可以画平滑曲线,第一种是拟合的方法,第二种是用spcrv。
其实原理应该都一样就是插值。下面是源程序,大家可以根据需要自行选择,更改拟合的参数。
clc,clear;
a = 1:1:6; %横坐标
b = [8.0 9.0 10.0 15.0 35.0 40.0]; %纵坐标
plot(a, b, 'b'); %自然状态的画图效果
hold on;
%第一种,画平滑曲线的方法
c = polyfit(a, b, 2); %进行拟合,c为2次拟合后的系数
d = polyval(c, a, 1); %拟合后,每一个横坐标对应的值即为d
plot(a, d, 'r'); %拟合后的曲线
plot(a, b, '*'); %将每个点 用*画出来
hold on;
%第二种,画平滑曲线的方法
values = spcrv([[a(1) a a(end)];[b(1) b b(end)]],3);
plot(values(1,:),values(2,:), 'g');
展开全部
clc,clear;
a = 1:1:6; %横坐标
b = [8.0 9.0 10.0 15.0 35.0 40.0]; %纵坐标
plot(a, b, 'b'); %自然状态的画图效果
hold on;
%第一种,画平滑曲线的方法
c = polyfit(a, b, 2); %进行拟合,c为2次拟合后的系数
d = polyval(c, a, 1); %拟合后,每一个横坐标对应的值即为d
plot(a, d, 'r'); %拟合后的曲线
plot(a, b, '*'); %将每个点 用*画出来
hold on;
%第二种,画平滑曲线的方法
values = spcrv([[a(1) a a(end)];[b(1) b b(end)]],3);
plot(values(1,:),values(2,:), 'g');
建议学会使用搜索引擎,百度“matlab曲线平滑“出来一堆方法
a = 1:1:6; %横坐标
b = [8.0 9.0 10.0 15.0 35.0 40.0]; %纵坐标
plot(a, b, 'b'); %自然状态的画图效果
hold on;
%第一种,画平滑曲线的方法
c = polyfit(a, b, 2); %进行拟合,c为2次拟合后的系数
d = polyval(c, a, 1); %拟合后,每一个横坐标对应的值即为d
plot(a, d, 'r'); %拟合后的曲线
plot(a, b, '*'); %将每个点 用*画出来
hold on;
%第二种,画平滑曲线的方法
values = spcrv([[a(1) a a(end)];[b(1) b b(end)]],3);
plot(values(1,:),values(2,:), 'g');
建议学会使用搜索引擎,百度“matlab曲线平滑“出来一堆方法
追问
你说的这两种方法我都试了 我的数据是excel中导出来了 横纵坐标都是500个数 画出来还是和我截的图一样啊
追答
那就用smooth函数好了,有五种平滑方式,你可以试试看选择效果最好的一种,具体参数设置可以参考matlab help。
yy1=smooth(y,30); %移动平均法
yy2=smooth(y,30,'lowess'); %利用lowess方法
yy3=smooth(y,30,'rlowess'); %利用rlowess方法
yy4=smooth(y,30,'loess'); %利用loess方法
yy5=smooth(y,30,'sgolay',3); %利用sgolay方法
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我会用SPSS做平滑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |