lsqcurvefit 関数を実行すると、「関数値と YDATA のサイズが一致しませ​ん」のエラーが発生す​るのはなぜですか?

Optimization Toolbox の lsqcurvefit 関数を実行すると、以下のエラーが発生します。
>> x = lsqcurvefit(fun,x0,xdata,ydata)
エラー lsqcurvefit (line 247)
関数値と YDATA のサイズが一致しません。
エラーの原因を教えてください。

 채택된 답변

MathWorks Support Team
MathWorks Support Team 2019년 7월 25일

0 개 추천

このエラーメッセージは、lsqcurvefit 関数の目的関数からの出力値と、観測値として与えているydata のサイズが厳密に一致していない場合に発生します。
まずは、目的関数にパラメータの初期値 x0、および入力 xdata を入力し、観測値である ydata のサイズと一致するか、ご確認ください。
% ここで、myobj は lsqcurvefit関数の目的関数
>> A = myobj(x0,xdata);
>> isequal(size(A),size(ydata))
また、目的関数の入力引数の順番が正しく定義されているか、ご確認ください。
lsqcurvefit 関数の目的関数では、第1入力引数にパラメータ、第2入力引数に xdata を定義する必要があります。
例:
% myobj = @(xdata,x)x(1)*exp(x(2)*xdata); % エラーが発生
myobj = @(x,xdata)x(1)*exp(x(2)*xdata); % 正しい記述

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 非線形方程式系에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!