请教MATLAB一个问题

我有许多的二维点例如(1,3),(4,6)等等这些都已知,我现在要求出一个点,这个点到已知的所有点的距离之和(欧氏距离)是最小的。这个程序该如何编写?... 我有许多的二维点例如(1,3),(4,6)等等这些都已知,我现在要求出一个点,这个点到已知的所有点的距离之和(欧氏距离)是最小的。这个程序该如何编写? 展开
 我来答
ruifengcao
2011-01-23 · TA获得超过9491个赞
知道大有可为答主
回答量:3579
采纳率:33%
帮助的人:2073万
展开全部
一楼的回答思路是正确的,但有个最大的错误就是你怎么知道这个点的坐标就是整数值呢?

对于这个问题,你可以在数学上分析一下:
假设只有两个点,那到这两个点的距离之和最短的点就是这两个点的中点。对于三个点来说,就是这三个点组成三角形的外心。

所以你的问题变的很简单,这个点的坐标就是所有点坐标的平均值。即

A_x=mean(x);
A_y=mean(y);

这个是可以证明的,假设这些点分别是(x1,y1)、(x2,y2)……(xn,yn)
那么平面内一点到这点的距离之和的平方为
L^2=(x-x2)^2+(x-x2)^2+……+(y-y1)^2+(y-y2)^2+……
求它的最值就是求它的两个偏导数都为零的点。
这样可得到
x=(x1+x2+……+xn)/n
y=(y1+y2+……+yn)/n

从这个问题可以看出,对于一个问题的数学分析是最主要的!

祝你学习愉快!
yjoli
2011-01-23 · TA获得超过1384个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:194万
展开全部
设有n个点,其x,y坐标记录到矩阵A=[x1,y1;x2,y2;……xn,yn]中
%%
A=[x1,y1;x2,y2;……xn,yn]; %记录坐标点
n=length(A); %返回A中记录的点数
for i=1:n %第i个点
for j=1:n %第j个点
d(j)=sqrt((A(i,1)-A(j,1))^2+(A(i,2)-A(j,2))^2); %第i点到第j点的距离
end
sumd(i)=sum(d); %第i点到到所有点的距离和
end
[D N]=min(sumd); %结果,即第N个点到所有点的距离和最小,最小距离为D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ichrud
2011-01-23 · TA获得超过1234个赞
知道小有建树答主
回答量:1162
采纳率:0%
帮助的人:968万
展开全部
读入图片
调整图片大小得I2
对图像作开运算得I3(膨胀)
用I3-I2,求出图像边缘
显示I3图像
对I3二值化处理,变成黑白图像BW
显示
对BW中值滤波
显示
这句应该是对图像去毛刺
最后存储修改后图片
你可以拿张图片试试,边缘提取的程序有很多种
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天空与飞鸟
2011-01-23 · TA获得超过1068个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:139万
展开全部
用无约束非线性规划指令fminunc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式