matlab拟合出现问题

MATLAB中运用lqvcurvefit拟合,提示Function value and YDATA sizes are not equal.如下图。求帮助!!

img

从错误提示看,是因为你的拟合函数(func)输出的值的大小和实际的数据(YDATA)的大小不相等。
具体可能有以下几种情况:

  1. 拟合函数func有输入的参数错了,比如某个变量名写错了,导致输出的值的大小发生变化。
  2. 拟合函数func的形式不正确,比如在某个条件下输出的值变成向量或者矩阵,而实际YDATA是标量。
  3. 你调用lsqcurvefit时,设置的lb(下界)和ub(上界)的值范围不正确,导致在某个输入值下,func的输出超出了YDATA的大小。
    解决方法:
  4. 检查拟合函数func,确认所有输入变量名和形式都正确。
  5. 确认func在任何输入值下,输出都是标量。如果有条件下输出是向量,需要在那个条件下返回一个定值(比如mean值)。
  6. 确认调用lsqcurvefit时设置的变量边界lb和ub是正确的,不能使得在某个输入值下导致func的输出超出YDATA的大小。
  7. 打印func的输出值,和YDATA做比较,找出两者大小不等的具体输入值,然后根据1-3进行修正。
    这些都是我遇到过的可能导致这个错误的原因和解决方法。你可以根据自己的具体情况进行检查和修正。