![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
matlab编程求两条直线的交点 10
网上搜了程序,可是看不懂,谁能帮忙一下呢??将下边语句详细解释一下。非常感谢了!---------------------------------网上找的,不太给力的代码...
网上搜了程序,可是看不懂,谁能帮忙一下呢??将下边语句详细解释一下。非常感谢了!
---------------------------------网上找的,不太给力的代码-----------------------------------------
function [X Y]=node(X1,Y1,X2,Y2)
k1=(Y1(2)-X1(2))/(Y1(1)-X1(1));
k2=(Y2(2)-X2(2))/(Y2(1)-X2(1));
b1=X1(2)-k1*Y1(1);
b2=X2(2)-k2*Y2(1);
X=(b2-b1)/(k1-k2);
Y=k1*X+b1;
A1=Y1(1)-Y1(2);
B1=X1(2)-X1(1);
C1=Y1(2)*X1(1)-Y1(1)*X1(2);
A2=Y2(1)-Y2(2);
B2=X2(2)-X2(1);
C2=Y2(2)*X2(1)-Y2(1)*X2(2);
D=det([A1,B1;A2,B2]);
X=det([-C1 B1;-C2 B2])/D
Y=det([A1 -C1;A2,-C2])/D
----------------------------------------华丽的分割线-------------------------------------------
以下为在网上寻找代码未果后,个人带着失望与不屑书写的Matlab代码:
---------------------------------------个人给力代码-----------------------------------------
function [X Y]= node( X1,Y1,X2,Y2 )
if X1(1)==Y1(1)
X=X1(1);
k2=(Y2(2)-X2(2))/(Y2(1)-X2(1));
b2=X2(2)-k2*X2(1);
Y=k2*X+b2;
end
if X2(1)==Y2(1)
X=X2(1);
k1=(Y1(2)-X1(2))/(Y1(1)-X1(1));
b1=X1(2)-k1*X1(1);
Y=k1*X+b1;
end
if X1(1)~=Y1(1)&X2(1)~=Y2(1)
k1=(Y1(2)-X1(2))/(Y1(1)-X1(1));
k2=(Y2(2)-X2(2))/(Y2(1)-X2(1));
b1=X1(2)-k1*X1(1);
b2=X2(2)-k2*X2(1);
if k1==k2
X=[];
Y=[];
else
X=(b2-b1)/(k1-k2);
Y=k1*X+b1;
end
end
----------------------------------------华丽的分割线------------------------------------------- 展开
---------------------------------网上找的,不太给力的代码-----------------------------------------
function [X Y]=node(X1,Y1,X2,Y2)
k1=(Y1(2)-X1(2))/(Y1(1)-X1(1));
k2=(Y2(2)-X2(2))/(Y2(1)-X2(1));
b1=X1(2)-k1*Y1(1);
b2=X2(2)-k2*Y2(1);
X=(b2-b1)/(k1-k2);
Y=k1*X+b1;
A1=Y1(1)-Y1(2);
B1=X1(2)-X1(1);
C1=Y1(2)*X1(1)-Y1(1)*X1(2);
A2=Y2(1)-Y2(2);
B2=X2(2)-X2(1);
C2=Y2(2)*X2(1)-Y2(1)*X2(2);
D=det([A1,B1;A2,B2]);
X=det([-C1 B1;-C2 B2])/D
Y=det([A1 -C1;A2,-C2])/D
----------------------------------------华丽的分割线-------------------------------------------
以下为在网上寻找代码未果后,个人带着失望与不屑书写的Matlab代码:
---------------------------------------个人给力代码-----------------------------------------
function [X Y]= node( X1,Y1,X2,Y2 )
if X1(1)==Y1(1)
X=X1(1);
k2=(Y2(2)-X2(2))/(Y2(1)-X2(1));
b2=X2(2)-k2*X2(1);
Y=k2*X+b2;
end
if X2(1)==Y2(1)
X=X2(1);
k1=(Y1(2)-X1(2))/(Y1(1)-X1(1));
b1=X1(2)-k1*X1(1);
Y=k1*X+b1;
end
if X1(1)~=Y1(1)&X2(1)~=Y2(1)
k1=(Y1(2)-X1(2))/(Y1(1)-X1(1));
k2=(Y2(2)-X2(2))/(Y2(1)-X2(1));
b1=X1(2)-k1*X1(1);
b2=X2(2)-k2*X2(1);
if k1==k2
X=[];
Y=[];
else
X=(b2-b1)/(k1-k2);
Y=k1*X+b1;
end
end
----------------------------------------华丽的分割线------------------------------------------- 展开
1个回答
展开全部
不知楼主的两条直线是知道数据呢还是方程?
给力代码不是靠看得懂看不懂来评判的。而是运行效率才是第一位,简单明了是第二位。你网上找的,没有用到一个循环,执行效率必然你的好。是给力代码噢!
注:Matlab忌讳循环。
更多追问追答
追问
这个,是某个网站上的。
知道每条直线的两个端点
追答
端点数据呢?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2022-12-05 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有...
点击进入详情页
本回答由--提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询