something wrong in fit function

9 ビュー (過去 30 日間)
Ilan Tal
Ilan Tal 2024 年 1 月 7 日
コメント済み: Dyuman Joshi 2024 年 1 月 7 日
I am using matlab in a mooc and apparently missing some point. The code is
% Create the custom logistic fittype with fit parameters k and c
ft = fittype( 'y= 1./(1+exp(-k*(x-c)))',...
'Independent','x', 'Dependent','y',...
'Coefficients',...
('k','c'));
The error message is
File: solution.m Line: 9 Column: 5
Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
The problem seems to be the comma between 'k' and 'c'. Since there are 2 parameters I need a comma between them. I have tried everything I can think of but I can't get past the error messages (which are slightly different depending on the exact format of the expression). In all cases it seems to be complaining about that comma.
I have never used matlab for an actual project, so maybe I am missing something obvious. I have been working on it for hours and can't get it to fly. Could someone with more experience please tell me what my actual error is? It makes no sense that it is really the comma.
Thanks,
ilan

採用された回答

Dyuman Joshi
Dyuman Joshi 2024 年 1 月 7 日
You can use either a cell array of char vectors or string array for multiple coefficients (or dependent/independent variables for that matter).
Remove the 'y = ' part, as that is not needed.
% Create the custom logistic fittype with fit parameters k and c
ft = fittype('1./(1+exp(-k*(x-c)))',...
'Independent','x', 'Dependent','y',...
'Coefficients', {'k', 'c'})
ft =
General model: ft(k,c,x) = 1./(1+exp(-k*(x-c)))
%Testing
x = linspace(1, 100);
k = randi(5)
k = 1
c = randi(5)
c = 5
y = 1./(1+exp(-k*(x-c)));
myfit = fit(x',y',ft)
Warning: Start point not provided, choosing random start point.
myfit =
General model: myfit(x) = 1./(1+exp(-k*(x-c))) Coefficients (with 95% confidence bounds): k = 1 (1, 1) c = 5 (5, 5)
  2 件のコメント
Ilan Tal
Ilan Tal 2024 年 1 月 7 日
Thanks for your answer. The y= part was already something I didn't notice after hours of attempts.
Sometime a fresh pair of eyes is all it takes. Now the error messages are gone....
Dyuman Joshi
Dyuman Joshi 2024 年 1 月 7 日
Yes, a new perspective does help out!
Glad to have helped :)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLinear and Nonlinear Regression についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by