Polyfit and Polyval on Reduced Matrices

1 Ansicht (letzte 30 Tage)
AnnieLieseMari
AnnieLieseMari am 15 Jun. 2022
Kommentiert: Torsten am 15 Jun. 2022
Hello!
I'm working with a set of data that needs to have a polyfit and polyval applied to it. However, I initially had to resize the vectors that are being put into the data. Then, I have to plot it.
This is the code that I have. I'm not sure if it's working correctly, as the output numbers for p are nowhere near where I am expecting them to be. It's showing p to be 0.1416, but I'm expecting p to be 50-60...
x and y are both vectors of 2458 x 1 doubles, or I'd attach them here...
figure()
xNew = (linspace(10.5, 16, numel(y)))
p = polyfit(10*log10(xNew),y,1)
f = polyval(p,[10.5 16]);
semilogx(x,y,'o',[10.5 16],f,'-')
Any help is appreciated!

Antworten (1)

Torsten
Torsten am 15 Jun. 2022
You are aware that you fit parameters a and b of the function
f(x) = a + 10*b*log10(x)
to your data vector y ?
Did you try
f = polyval(p,10*log10(xNew));
plot(10*log10(xNew),f)
hold on
plot(10*log10(xNew),y,'-')
  4 Kommentare
AnnieLieseMari
AnnieLieseMari am 15 Jun. 2022
So maybe the linspace function is wrong...
What can I do to use only the x values between 10.5 and 16, while extracting the values that correspond from y then?
Yes, the graph is supposed to show the line of best fit to the scatter points that are in x and y.
Torsten
Torsten am 15 Jun. 2022
What can I do to use only the x values between 10.5 and 16, while extracting the values that correspond from y then?
You define x to be equispaced in 10.5:16 with as many points as the y-vector. So no need to extract them.
I must admit that I don't understand what you are trying to do.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by