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!