Nonlinear regression using lsqcurvefit
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Here is my code, along with my error message.
T = V22050100Emat;
A = table2array(T);
f = A(389:402, 6);
y = A(389:402, 5);
% axis([0 1010 0 1.6E-7])
% hold on
plot(f,y,'ro')
title('Data points')
% hold off
F = @(x,f)(x(1)./2)*(sin(x(2).*pi/2)./(cosh(x(2).*log(2*pi*f*x(3).).)+cos(x(2).*pi/2)));
x0 = [1e-6 0.16 0.04];
size(f)
size(F)
[x,resnorm,~,exitflag,output] = lsqcurvefit(F,x0,f,y);
hold on
plot(f,F(x,f))
hold off
My error message
Error using lsqcurvefit
Function value and YDATA sizes are not equal.
Error in nonlinfit (line 20)
[x,resnorm,~,exitflag,output] = lsqcurvefit(F,x0,f,y);
I have also tried the 'fit' function with mixed results. Thank you.
0 Commenti
Risposta accettata
Torsten
il 4 Lug 2022
Modificato: Torsten
il 4 Lug 2022
F = @(x,f) x(1)/2 * sin(x(2)*pi/2)./(cosh(x(2)*log(2*pi*f*x(3)))+cos(x(2)*pi/2));
instead of
F = @(x,f)(x(1)./2)*(sin(x(2).*pi/2)./(cosh(x(2).*log(2*pi*f*x(3).).)+cos(x(2).*pi/2)));
What do you get if you type
size(f)
size(y)
?
Does f and/or y have Inf or NaN values ?
5 Commenti
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!