Borrar filtros
Borrar filtros

Polyfit and Polyval on Reduced Matrices

1 visualización (últimos 30 días)
AnnieLieseMari
AnnieLieseMari el 15 de Jun. de 2022
Comentada: Torsten el 15 de Jun. de 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!

Respuestas (1)

Torsten
Torsten el 15 de Jun. de 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 comentarios
AnnieLieseMari
AnnieLieseMari el 15 de Jun. de 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 el 15 de Jun. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Productos


Versión

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by