Borrar filtros
Borrar filtros

Help with plotting two lines.

1 visualización (últimos 30 días)
Matthew Lozancich
Matthew Lozancich el 13 de Nov. de 2017
Comentada: Matthew Lozancich el 13 de Nov. de 2017
So I was given a set of x and y coordinates. We were asked to plot the set with a non-connecting points. Then to create a function that generates the best fit line for the list and plot it on the same chart which I did. But it ended up with a bunch of vertical lines connecting the data points and the best fit line together...(
(I've attached a picture)). How do I remove this? Here is my code if you need it for reference:
function cubicfit(x,y)
xp=x;
yp=y;
plot(xp,yp,'.')
xlabel('X data')
ylabel('Y data')
hold on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A=zeros(41,4);
for i=1:length(x)
A(i,1)=[((x(i))^3)];
end
for i=1:length(x)
A(i,2)=[((x(i))^2)];
end
for i=1:length(x)
A(i,3)=[((x(i))^1)];
end
for i=1:length(x)
A(i,4)=[((x(i))^0)];
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c=(((A')*A)^-1)*((A')*y)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:length(x)
y(i)=((c(1)*(x(i)))^3)+((c(2)*(x(i)))^2)+((c(3)*(x(i))))+(c(4));
plot(x,y,'-')
end

Respuesta aceptada

Walter Roberson
Walter Roberson el 13 de Nov. de 2017
In the sequence
for i=1:length(x)
y(i)=((c(1)*(x(i)))^3)+((c(2)*(x(i)))^2)+((c(3)*(x(i))))+(c(4));
plot(x,y,'-')
end
you are defining one new y value at a time, but you are plotting all the y values each time.
You need to postpone the plot to after the loop.
  1 comentario
Matthew Lozancich
Matthew Lozancich el 13 de Nov. de 2017
Yuppp that was the problem. This literally gets me every time. Once again, thank you!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by