能否为polyfit函数的参数N传入范围值而非标量?
解答:polyfit无法直接传入次数范围,用循环实现多次数拟合
不行哦,polyfit函数要求多项式次数参数n必须是标量值,没办法直接传入一个范围(比如2到4这类区间)。如果想给同一条曲线批量拟合不同次数的多项式,用for循环来实现是最直接的方案,我给你写个可运行的示例:
% 用一系列指定次数的多项式拟合给定曲线 X = 1:6; % 样本x值 Y0 = [10, 11, 21, 2, 3, 7]; % 原始样本数据 DEG = 2:6; % 要尝试的多项式次数范围 plot(X, Y0, 'o-', 'LineWidth',1.5) % 绘制原始样本作为参考 hold on for n = DEG P = polyfit(X, Y0, n); % 拟合当前次数的多项式 Y_fit = polyval(P, X); % 计算拟合后的y值 plot(X, Y_fit, '--', 'DisplayName',["次数",num2str(n)]) % 绘制拟合曲线并标注次数 end legend hold off
上面的代码里,我们先定义了要尝试的次数范围DEG,然后循环遍历每个次数,分别完成拟合和绘图,这样就能直观对比不同次数多项式的拟合效果啦。
内容的提问来源于stack exchange,提问作者mins
相关产品推荐
相关产品推荐

