clear;
clc;
x=rand(7,1);
y=rand(7,1);
dist=@(var) sum(sqrt((var(1)-x).^2+(var(2)-y).^2));%var(1)=x;var(2)=y dist代表函数 sum(sqrt((var(1)-x).^2+(var(2)-y).^2))
var0=rand(2,1);
[var,minDistance,exitflag]=fminunc(dist,var0) %var0是函数的初始值,求函数dist的最小值minDistance,以及对应的点var
plot(x,y,'o','markerfacecolor','r','markersize',6);%'o'代表点的形状,'markerfacecolor'代表点的颜色,'r'红色,'markersize'点的大小,6代表多大
hold on;
plot(var(1),var(2),'p','markerfacecolor','g') %'p'代表形状
for i=1:7
plot([var(1),x(i)],[var(2),y(i)],':');
end
用fminunc求到各点的距离之和最小的点matlab
最新推荐文章于 2022-11-08 10:24:04 发布