一个点(10,1)几个点:x=[20,50,160,200,120,35,10,];
y=[100,100,25,75,40,40,70];求各位matlab大神指教
用MATLAB怎么算一个点到其他几个点的距离
答案:2 悬赏:50 手机版
解决时间 2021-03-12 03:49
- 提问者网友:山高云阔
- 2021-03-11 07:49
最佳答案
- 五星知识达人网友:怙棘
- 2021-03-11 08:28
a(x1,y1), b(x2,y2) 两点距离 distance= sqrt((x1-x2)^2+(y1-y2)^2);
全部回答
- 1楼网友:刀戟声无边
- 2021-03-11 10:04
lsqnonlin可以求解带约束的多函数多变量的最小值问题。你的问题没有约束,用一个简单明了的fminumc函数就可以了。具体如下:
先建立函数文件distance.m求距离。
distance.m的内容为:
function zx=distance(x)
xf=x(1); yf=x(2);
x(1)=1340;x(2)=1656; x(3)=2370 ;x(4)=2339.8; x(5)=1562 ;x(6)=1948 ;x(7)=1433; x(8)=1765; x(9)=1275;x(10)=1096;
y(1)=2547 ;y(2)=2667; y(3)=3782 ;y(4)=3600.7; y(5)=4298; y(6)=2074 ;y(7)=3143; y(8)=2924; y(9)=2427 ;y(10)=1893;
fun=zeros(10,1);
for i=1:10
fun(i)=sqrt((x(i)-xf)*(x(i)-xf)+(y(i)-yf)*(y(i)-yf));
end
zx=fun(1)+fun(2)+fun(3)+fun(4)+fun(5)+fun(6)+fun(7)+fun(8)+fun(9)+fun(10);
保存distance.m
在command window中输入(或另建立一个m文件输入):
x0 = [2000,3500]; %随意猜测一个起始值
[x,fval] = fminunc(@distance,x0)
得到结果:
x = 1634.9 2795.2
fval = 7258.1
欢迎交流。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯