咻卡咻卡咻 2023-03-18 12:04 采纳率: 33.3%
浏览 81
已结题

Matlab怎么做非线性拟合

要做一个新冠累计确诊人数的拟合,从WHO上下了数据,然后基于2020年1月3日起至2020年6月3日的数据做预测,共154行4列的,4列依次是新增确诊、累计确诊、新增死亡、累计死亡


function y = quanguo(b, t)
    global y0 %b(1):固有增长率;b(2):最大值;b(3):初始值  
    y = b(2) ./ (1 + b(2) / b(3) - 1) .* exp(-b(1) .* t); 
end
以上为函数
以下为命令
a = xlsread("quanguo");
plot(a, "*-");
y = a(:, 2);
t = 1:154;
b = nlinfit(t, y, @quanguo, [0.3, 100000, 1]);
错误使用 nlinfit (line 219)
MODELFUN 必须为函数,它返回大小与 Y (154-by-1)相同的拟合值向量。您提供的模型函数返回结果 1-by-154。

大小不匹配的常见原因之一是在函数中使用矩阵运算符(*、/、^),而不是对应的元素运算符(.*、./、.^)。

可我提供的xls是个154行4列的矩阵啊,a读出来也是正确的

不是很懂错在哪了,求指点一下

  • 写回答

4条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-03-18 14:12
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 已采纳回答 3月22日
  • 修改了问题 3月18日
  • 创建了问题 3月18日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部