You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MATLAB中调用前置作业数据并按指定要求完成拟合绘图?

解决方案

问题分析

原代码存在几个影响绘图效果的问题:

  • fplot(coef, '-.')用法错误,fplot无法直接识别多项式系数数组,需结合polyval构造可调用的函数
  • 手动拼接的字符串方程eqFit传递给fplot易出现语法问题,且完全没必要这么做
  • x轴范围未绑定到实际平均值的数量,无法保证范围准确

修正后的代码

% 获取实际平均值的数量,作为x轴的上限
n_avg = length(theAverage);
% 基于1到n_avg的x值做7阶多项式拟合
coef = polyfit(1:n_avg, theAverage, 7);

% 构造拟合函数的匿名函数,用于fplot调用
fit_func = @(x) polyval(coef, x);

warning off
hold on

% 绘制拟合曲线,指定x范围为1到平均值数量
fplot(fit_func, [1, n_avg], '-.', 'DisplayName', '拟合方程');
% 绘制原始平均值数据(用散点更清晰体现原始数据)
plot(1:n_avg, theAverage, 'o', 'DisplayName', '原始平均值');

title('拟合方程与原始平均值数据对比图');
grid on
xlabel('样本序号'); % 可根据实际业务场景修改标签内容
ylabel('平均值');   % 可根据实际业务场景修改标签内容
legend('Location', 'best');
% 强制锁定x轴范围为1到平均值的数量
xlim([1, n_avg]);
hold off
warning on % 建议恢复警告,便于后续代码调试

关键修改说明

  • 用n_avg = length(theAverage)精准获取平均值的数量,确保x轴范围完全匹配数据量
  • 用@(x) polyval(coef, x)构造拟合函数,替代原代码中错误的系数直接传递和字符串方程用法
  • 改用plot绘制原始平均值散点,比字符串形式的fplot更直观准确
  • 显式设置xlim([1, n_avg])锁定x轴范围,避免xlim tight自动调整超出需求范围
  • 优化图例和标签的显示逻辑,提升图表可读性

内容的提问来源于stack exchange,提问作者NegativeZero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:20:48