matlab中curvefit总是报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中curvefit总是报错相关的知识,希望对你有一定的参考价值。

??? Error using ==> lsqcurvefit at 253
Function value and YDATA sizes are incommensurate.

Error in ==> main at 38
a=lsqcurvefit('curvefit_fun2',a0,x,y);(这个是报错)以下为程序,求高手指点,程序无法得出结果,无法画出红线
建立函数文件curvefit_fun2.m
function f=curvefit_fun2 (a,t)
f=a(1)./(1+(a(1)/32.09-1)*exp(-a(2)*(t-1980)));
在命令文件main.m中调用函数文件curvefit_fun2.m
% 定义向量(数组)
x=1980:1:2010;
y=[32.09
33.39
35.45
40.52
43.52
47.86
51.45
55.6
60.14
64.82
68.65
73.22
80.22
87.69
93.97
99.16
103.38
109.46
114.6
119.85
124.92
132.04
139.45
150.93
165.13
181.93
196.83
212.38
228.07
241.45
251.03
];
plot(x,y,'*',x,y); % 画点,并且画一直线把各点连起来
hold on;
a0=[0.001,1]; % 初值
% 最重要的函数,第1个参数是函数名(一个同名的m文件定义),第2个参数是初值,第3、4个参数是已知数据点
a=lsqcurvefit('curvefit_fun2',a0,x,y);
disp(['a=' num2str(a)]); % 显示结果
% 画图检验结果
xi=1980:1:2020;
yi=curvefit_fun2(a,xi);
plot(xi,yi,'r');
% 预测2022年的数据
x1=2022;
y1=curvefit_fun2(a,x1)
hold off
求求各位大神了 在线等啊!!!

参考技术A

main.m文件呢?单个去执行上面函数,可以啊!

参考技术B a=lsqcurvefit('curvefit_fun2',a0,x,y);
改为
a=lsqcurvefit(@curvefit_fun2,a0,x,y');
参考技术C 在数据后面加上,...本回答被提问者采纳

2.如何使用matlab拟合曲线

 

  1. 技术分享
  2.  

    添加数据到curve fitting程序

    这一步就是将你要拟合的数据添加到curve fitting程序中,同时给你拟合的曲线命名。

    技术分享
  3.  

    选择曲线拟合的方法类型

    常见的拟合曲线有多项式的、指数的、对数的等等。curve fitting程序提供了很多的方法。你可以根据自己的数据具体选择。

    技术分享
  4.  

    选择好方法后,按照提供的公式选择具体的选项

    本文的数据近似为线性的,我们选择多项式拟合的一阶方法。

    技术分享
  5.  

    拟合结果查看

    拟合后,curve fitting会给你具体的函数表达式,你可以将他给出的参数的值带入你选择的方法中。

    技术分享
  6.  

    结果说明

    在结果中,不仅可以看到函数的表达式,同时他还给出了95%置信区间的参数值,以及拟合好坏的一些指标,如:

      SSE:

      R-square:

      Adjusted R-square:

      RMSE: 

    技术分享
  7.  

    画出图像

    虽然在curve fitting程序有自带的图像显示,但是一般最好将拟合结果显示到单独的图像窗口。

    技术分享
    技术分享
  8. 8

    保存结果

    曲线拟合结束后,你可以保存你的拟合结果。选择你保存的路径即可。

    技术分享
  9.  

以上是关于matlab中curvefit总是报错的主要内容,如果未能解决你的问题,请参考以下文章

VUE中页面F5刷新空白并报错报错:Uncaught SyntaxError: Unexpected token <解决方法

Xcode有关lstdc++报错

Apollo报错

React 引用报错

又报错了

R语言arules报错