怎么用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),'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...