用Matlab编程,已知两个点的坐标,怎么求直线的方程啊?

如题。比如A=[3 5];B=[0,4]; 如何求得直线的方程呢?只要得到直线方程的系数即可。拜托!

k=B(2)-A(2)/((B(1)-A(1));k是系数;b=A(2)-k*A(1);b是常数。(方程:y=k*x+b)。

设点1(x1,y1),点2(x2,y2)

a=polyfit([x1,x2],[y1,y2],1)

则方程为y=a(1)x+a(2)

例如:

function qiuzhixian(varargin)%求通过一点或两点的直线

%%%%使用方法:qiujzhixian([2 3]),qiujuli([2 3],[4 5]),

if nargin==0

disp('未输入,请至少输入一点坐标值')

end

if nargin==1

x1=varargin{1};

p=polyfit([x1(1) 0],[x1(2) 0],1);

eq=poly2sym(p);

disp(['输入只有一点,则求通过这点和原点的直线方程为:y = ' char(eq)])

end

if nargin==2

x1=varargin{1};

x2=varargin{2};

p=polyfit([x1(1) x2(1)],[x1(2) x2(2)],1);

eq=poly2sym(p);

disp(['输入有两点,则求通过这两点的直线方程为:y = ' char(eq)])

end

if nargin>2

disp('输入超过两个点,请至多输入两点坐标值')

end

end

扩展资料:

⑴点(x1,y1)关于点(x0,y0)对称的点:(2x0-x1,2y0-y1)

⑵点(x0,y0)关于直线Ax+By+C=0对称的点:

( x0-2A(Ax0+By0+C)/(A^2+B^2) ,y0-2B(Ax0+By0+C)/(A^2+B^2) )

⑶直线y=kx+b关于点(x0,y0)对称的直线:y-2y0=k(x-2x0)-b

⑷直线1关于不平行的直线2对称:定点法、动点法、角平分线法

参考资料来源:百度百科-直线方程

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-09
[k,b]=solve('3+5*k+b=0','4*k+b=0')
k为线性系数,b为常系数。
k=12
b=-3本回答被提问者采纳
第2个回答  推荐于2018-05-13
k=B(2)-A(2)/((B(1)-A(1));k是系数;b=A(2)-k*A(1);b是常数。(方程:y=k*x+b)。本回答被网友采纳
第3个回答  2011-03-09
——————————————
A是一个0-1对称方阵,如果第i个点和第j个点相连,那么A(i,j)=A(j,i)=1,如果不相连,那么A(i,j)=A(j,i)=0
B是2列的矩阵,第i行就是第i个点的坐标

下面的链接是一个例子

————————————————————————
还有就是这两天这个图我已经见过n次了,希望做数模竞赛的朋友用自己的实力比赛,即使使用最一般的plot函数,加几个循环照样可以轻松绘制的。
第4个回答  2011-03-08
(⊙o⊙)…;
k=(B(1,2)-A(1,2))/(B(1,1)-A(1,1))
相似回答