MATLAB 数据拟合与绘图代码详解:从入门到精通
这段代码是在 MATLAB 环境下进行数据拟合和绘图的示例。以下是对代码的详细解释:
-
清空环境变量,关闭所有打开的图形窗口,清空命令窗口。
clear; clf; clc; -
定义两个数组 x 和 y,分别存储数据点的 x 坐标和 y 坐标。
x = [0 0.1 0.2 0.3 0.5 0.8 1]; y = [1 0.41 0.5 0.61 0.91 2.02 2.46]; -
使用 polyfit 函数对数据进行拟合,得到 3 次和 4 次多项式拟合曲线的系数,分别存储在 p1 和 p2 中。
p1 = polyfit(x, y, 3); p2 = polyfit(x, y, 4); -
定义一个数组 X,用于生成拟合曲线的横坐标,范围从 0 到 1,步长为 0.01。
X = 0:0.01:1; -
使用 polyval 函数根据多项式拟合曲线的系数 p1 和 p2,以及生成的横坐标数组 X,得到对应的纵坐标数组 y1 和 y2。
y1 = polyval(p1, X); y2 = polyval(p2, X); -
使用 poly2str 函数将多项式拟合曲线的系数转换成字符串形式,并在命令窗口输出。
poly2str(p1, 'x') poly2str(p2, 'x') -
使用 plot 函数绘制数据点和多项式拟合曲线,分别用黑色圆点、蓝色实线和红色实线表示。
plot(x, y, 'ko', X, y1, 'b-', X, y2, 'r-') -
使用 hold on 函数保留当前图形,以便在后续绘图时添加新的曲线。
hold on -
使用 polyfit 函数对数据进行拟合,得到 2 次多项式拟合曲线的系数,存储在 p3 中。
p3 = polyfit(x, y, 2); % 观察图形与抛物线接近,故采用 2 次曲线拟合 -
使用 polyval 函数根据 2 次多项式拟合曲线的系数 p3 和生成的横坐标数组 X,得到对应的纵坐标数组 y3。
y3 = polyval(p3, X);
- 使用 poly2str 函数将 2 次多项式拟合曲线的系数转换成字符串形式,并在命令窗口输出。
poly2str(p3, 'x')
- 使用 plot 函数绘制 2 次多项式拟合曲线,用紫色实线表示。
plot(X, y3, 'm-')
- 使用 title、xlabel、ylabel 和 legend 函数添加图形标题、横坐标标签、纵坐标标签和图例。
title('Curve Fitting with different degree', 'FontName', 'New Times Roman', 'FontSize', 12);
xlabel('x-axis', 'FontName', 'New Times Roman', 'FontSize', 12);
ylabel('y-axis', 'FontName', 'New Times Roman', 'FontSize', 12);
legend('Fitted pts', 'd=3', 'd=4', 'd=2')
- 使用 hold off 函数释放当前图形,绘图结束。
hold off
通过以上步骤,代码实现了对给定数据点的多项式拟合和绘制,并展示了不同次数多项式拟合的效果。
原文地址: http://www.cveoy.top/t/topic/n4D7 著作权归作者所有。请勿转载和采集!