如何使matlab中曲线平滑?

 我来答
皮蛋聊游戏
高粉答主

2021-07-04 · 游戏小百科,擅长游戏攻略,游戏达人
皮蛋聊游戏
采纳数:204 获赞数:13197

向TA提问 私信TA
展开全部

准备工具:

matlab

具体步骤:

1、首先准备两列数据,作为xy坐标值,使用plot命令作图如下。

2、然后进行数据拟合,这里使用matlab的polyfit命令。如果数据的规律性很差的话,polyfit后面设置的参数要足够大才能保证拟合精度,在这个数据中选择15。

3、拟合后与原来数据对比后的std约为0.1287.y的平均值为113.精度值根据不同的需要设计不同的拟合值。

4、matlab下的命令为polyder。求导后得到的数据作图如下。可以看到在比区间上,导数有两处为0,这与原来曲线相符。

5、最后就完成了。

MATLAB优势特点:

1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;

2) 具有完备的图形处理功能,实现计算结果和编程的可视化;

3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
帐号已注销
2021-07-04 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:159万
展开全部

%第一种,画平滑曲线的方法

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中可以用polyfit 来拟合多项式。拟合以及插值还有逼近是数值分析的三大基础工具,通俗意义上它们的区别在于:拟合是已知点列,从整体上靠近它们;插值是已知点列并且完全经过点列;逼近是已知曲线,或者点列,通过逼近使得构造的函数无限靠近它们。

以上内容参考:百度百科-拟合

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
J0Becky
推荐于2019-08-16 · TA获得超过5507个赞
知道小有建树答主
回答量:25
采纳率:0%
帮助的人:4284
展开全部

有两种方法可以画平滑曲线,第一种是拟合的方法,第二种是用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');

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式