【问题标题】:Exponential Fit to Data Points in MatlabMatlab中数据点的指数拟合
【发布时间】:2013-08-07 17:58:58
【问题描述】:

我正在尝试将一阶指数曲线(我也将制作二阶指数曲线)拟合到 Matlab 中的某些数据点。我一直在尝试使用 StackOverflow 的另一个问题中描述的方法,但我只收到此消息:'Error in ==> fit at 115 errstr = handlerr('curvefit:fit:xDataMustBeColumnVector', ...'.

这是我的代码:

hold on

X = (1x8-vector containing data);
Y = (1x8-vector containing data);
Error = (1x8-vector containing data);

YError = Y.*Error;

ft = fittype('exp1');
f = fit(X, Y,ft);

errorbar(X, Y, YError, 'squarek','MarkerFaceColor','k')
plot(f,X,Y)

我知道“拟合”应该返回指数曲线的系数,所以我知道最后一个“绘图”不起作用。现在我什至无法得到系数。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    1x8 向量是行向量。 8x1 向量将是列向量。这似乎是一个微不足道的区别,但它会对代码的工作产生影响,因此 fit 要求 size(X,2) 为 1 或 2(您可以通过在命令行中键入 edit fit.m 来查看这一点)。

    当然,您得到的错误有点不透明。 R2011b 抛出(为 iFit 和 fit 提供正确的行号):

    X 必须是一列或两列的矩阵。

    Just X', Y' 将解决此问题(或调整生成 X 和 Y 的代码,以便首先为您提供列向量)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 2014-02-13
      相关资源
      最近更新 更多