MATLAB代码逐行解析:曲线拟合实例
clear; % 清除工作区变量 clf; % 清除图形窗口中的图像 clc; % 清除命令窗口中的内容 x = [0 0.1 0.2 0.3 0.5 0.8 1]; % 定义x变量 y = [1 0.41 0.5 0.61 0.91 2.02 2.46]; % 定义y变量 p1 = polyfit(x, y, 3); % 用3次多项式拟合x和y,并将结果存储在p1中 p2 = polyfit(x, y, 4); % 用4次多项式拟合x和y,并将结果存储在p2中 X = 0:0.01:1; % 定义X变量,用于绘制拟合曲线 y1 = polyval(p1, X); % 用p1的系数拟合X,并将结果存储在y1中 y2 = polyval(p2, X); % 用p2的系数拟合X,并将结果存储在y2中 poly2str(p1, 'x') % 将p1的系数转换为字符串,并在命令窗口中显示 poly2str(p2, 'x') % 将p2的系数转换为字符串,并在命令窗口中显示 plot(x, y, 'ko', X, y1, 'b-', X, y2, 'r-') % 绘制散点图和3次、4次多项式拟合曲线 hold on % 保持当前图形,并在其上增加新的图形 p3 = polyfit(x, y, 2); % 用2次多项式拟合x和y,并将结果存储在p3中 y3 = polyval(p3, X); % 用p3的系数拟合X,并将结果存储在y3中 poly2str(p3, 'x') % 将p3的系数转换为字符串,并在命令窗口中显示 plot(X, y3, 'm-') % 绘制2次多项式拟合曲线 title('Curve Fitting with different degree', 'FontName', 'New Times Roman', 'FontSize', 12); % 设置图形标题 xlabel('x-axis', 'FontName', 'New Times Roman', 'FontSize', 12); % 设置x轴标签 ylabel('y-axis', 'FontName', 'New Times Roman', 'FontSize', 12); % 设置y轴标签 legend('Fitted pts', 'd=3', 'd=4', 'd=2') % 设置图例 hold off % 取消当前图形的保持状态
原文地址: http://www.cveoy.top/t/topic/n4D6 著作权归作者所有。请勿转载和采集!