Why am I not getting the m array?
Mostrar comentarios más antiguos
Hi all,
I have the following function:
function [m,yinter] = radial_lines(X,Y,xi,yi)
if X==Y
m=inf;
yinter= X;
return
end
% Calculate the slope:
m = (Y - yi)./((X) - xi);
% Solve for y-intercept
yinter = yi - m.*xi;
fplot(yinter)
end
%% data
X=[6,7,10,14,13,9];
Y=[12,9,7,8,10,14];
xi=10;
yi=10;
The issue i am running into is that when using the radial_lines function, I get a plot with horizontal lines. However I need the lines to have a slope. I am not quite sure what i am doing wrong when calculating the slopes. I should be getting an arry of m values but the code does not give me that output. Can some one kinldy help me out? Thanks.
6 comentarios
I am not certain what your code is doing.
An easier way to calculate the parameters for a linear regression is:
%% data
X=[6,7,10,14,13,9];
Y=[12,9,7,8,10,14];
B = [X(:) ones(size(X(:)))] \ Y(:) % Parameters: B(1) = m, B(2) = b
Yfit = [X(:) ones(size(X(:)))] * B; % Regression Fit (For 'plot’)
figure
plot(X, Y, 'p', 'DisplayName','Data')
hold on
plot(X, Yfit, '-r', 'DisplayName','Regression')
hold off
grid
xlabel('X')
ylabel('Y')
legend('Location','best')
axis([5 15 6 15])
Mariam Shahab
el 1 de Oct. de 2022
Torsten
el 1 de Oct. de 2022
I am trying to get the equations of lines that start from (xi,yi ).
Then
yinter = Y - m.*X
not
yinter = yi - m.*xi
Mariam Shahab
el 1 de Oct. de 2022
Slope and y-intercept can be obtained from my answer given below.
X=[6,7,10,14,13,9];
Y=[12,9,7,8,10,14];
xi=10;
yi=10;
hold on
for i=1:6
plot([X(i),xi],[Y(i),yi])
end
hold off
Mariam Shahab
el 1 de Oct. de 2022
Respuesta aceptada
Más respuestas (1)
yinter is not a function. So use "plot" instead of "fplot" (whatever abscissa data you might want to choose).
Not that yinter(3) = Inf which is not plotted.
%% data
X=[6,7,10,14,13,9];
Y=[12,9,7,8,10,14];
xi=10;
yi=10;
[m yinter] = radial_lines(X,Y,xi,yi)
function [m,yinter] = radial_lines(X,Y,xi,yi)
for i=1:numel(X)
if X(i)==xi
m(i)=inf;
yinter(i)= inf;
else
% Calculate the slope:
m(i) = (Y(i) - yi)/(X(i) - xi);
% Solve for y-intercept
yinter(i) = Y(i) - m(i)*X(i);
end
end
end
Categorías
Más información sobre Spline Postprocessing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



