怎么用Matlab计算很多散点之间最短距离

供稿:hz-xin.com     日期:2025-01-21
怎么用Matlab计算很多散点之间最短距离?画出这些散点最短距离的连线,众多散点X,Y坐标已在txt文件中。

用迪杰斯特拉算法或佛洛依德算法。网上有图论工具箱,你可以下个。

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
var0=rand(2,1);
[var,minDistance,exitflag]=fminunc(dist,var0)
plot(x,y,'o','markerfacecolor','r','markersize',6);
hold on;
plot(var(1),var(2),'p','markerfacecolor','g')
for i=1:7
plot([var(1),x(i)],[var(2),y(i)],':');
end

这样:

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

var0=rand(2,1);

[var,minDistance,exitflag]=fminunc(dist,var0)

plot(x,y,'o','markerfacecolor','r','markersize',6);

hold on;

plot(var(1),var(2),'p','markerfacecolor','g')

for i=1:7

plot([var(1),x(i)],[var(2),y(i)],':');

end

扩展资料:

注意事项

先构造一个n(各点的数量)维矩阵,如果是无向图则是对称矩阵:

a(1,2)=2;a(1,3)=8;a(1,4)=1;

a(2,3)=1;a(2,3)=6;a(2,5)=1;

a(3,4)=7;a(3,5)=5;a(3,6)=1;a(3,7)=2;

a(4,7)=9;

a(5,6)=3;a(5,8)=2;a(5,9)=9;

a(6,7)=4;a(6,9)=6;

a(7,9)=3;a(7,10)=1;

a(8,9)=7;a(8,11)=9;

a(9,10)=1;a(9,11)=2;

a(10,11)=4;

找到矩阵中的每一个非零元:

[i,j,v]=find(a);

利用最短距离函数求解:

[x,y,z]=graphshortestpath(b,1,11,'Directed',false) % Directed是标志图为有向或无向的属性,该图是无向图,对应的属性值为false,或0



可以使用norm函数,比如:中心点P别的点Anorm(repmat(P, size(A, 1), 1) - A)可以计算出来。或者你将数据贴一下。

用迪杰斯特拉算法或佛洛依德算法.网上有图论工具箱,你可以下个.

怎么用Matlab计算很多散点之间最短距离
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 var0=rand(2,1);[var,minDistance,exitflag]=fminunc(dist,var0)plot(x,y,'o','markerfacecolor','r','markersize',6);hold on;plot(var(1),var(2...

怎么用Matlab计算很多散点之间最短距离
可以使用norm函数,比如:中心点P别的点Anorm(repmat(P,size(A,1),1)- A)可以计算出来。或者你将数据贴一下。

怎么用matlab确定很多三维空间散点的中心?急求~~
Z=(min(z)+max(z))\/2 符合你的要求不?不符合要求就按什么重心、惯性矩之类的定义来求取

matlab散点连线怎么操作?
matlab散点连线可按照以下方法操作:1、首先需要先画出点图,即把每一个数据点的位置画出来,所使用的指令为:scatter(x,y1,'k'),该指令主要用于绘制点图,后面''里面的k标示的是每一个点用黑色画出,里面也可以一起添加一些其他的参数:如下图所示:2、下面是利用第一步生成的数据和第二步的...

怎样用MATLAB求离散点下x轴上之间的面积并求出这些离散点的平均值和...
按你所说“其实是想找这些离散点的平均值和方差”,如果只是对求压力值的均值和方差的话,直接用matlab自带的函数mean()及var()即可,跟时间没关系。比如在3个时间点测得的压力值分别为1,2,3,那平均压力值就是2,不管这三个时间点之间间隔如何。

怎样在matlab中作散点图?
1、打开matlab,在命令窗口输入如下代码,计算需要作图的2组散点数据 >> x = 0:pi\/20:2*pi;>> y1 = sin(x);>> y2 = 0.5*sin(x);2、直接使用scatter()函数作散点图 >> scatter(x,y1) % 默认显示圆点 >> hold on >> scatter(x,y2,'*') % 设置散点显示样式为 3、使用...

求助 用matlab求直线与散点的相关系数
比较简单的用matlab弄了一下:n=100;x=1:n;y=10.*rand(n,1); x=x';A=y(40);%A点的纵坐标 yA=y(40)esum=@(k)sum((k.*x-(40*k+y(40)-y)).^2);%残差的2次方和 [k,fval]=fminsearch(esum,-2);%ols法 找出esum的最小值 subplot(2,1,1)scatter(x,y);hold on;...

已知几个离散的点的坐标,怎样用MATLAB计算这些点所在曲线的解析式?_百 ...
x=[];y=[];A=polyfit(x,y)A即为解析式的系数

用matlab如何找出平面上无序离散点的先后顺序?
产生10个散点 t = randint(1,10,[0 20]);st = randint(1,10,[10 20]);t 升序排序并将位置索引存入 ix [t,ix] = sort(t);按 t 的位置索引调整 st 元素位置 st = st(ix);plot(t,st,'o');hold on plot(t,st,'-')

急急急急!matlab怎么画5个坐标的散点图
可以这样表示,用3d散点图来表示。xy面表示矩阵里的坐标,z轴表示具体值。clear all clc p=rand(5,5)-0.5%随机生成一个5X5,每个点大小在-0.5到0.5的矩阵(我懒得抄了)for n=1:1:5%x轴是行,5行 for m=1:1:5%y轴是列,5列 X=[n,n];Y=[m,m];Z=[0,p(n,m)];plot3(X...