用matlab如何求任意两点的距离(输入的点数不唯一,所以要用到nargin或varargin)

作者&投稿:唱钩 (若有异议请与网页底部的电邮联系)
求教MATLAB中findobj,nargin,varargin, varargout的用法,再帮忙看下这条语句什么意思:~

FINDOBJ Find objects with specified property values
寻找具有指定属性值的对象
这个用法很多,可使用help findobj查看

nargin表示一个函数的输入变量的个数

varargin, varargout表示的是函数的输入和输出的变量的个数是可变的。

if nargin && ischar(varargin{1})
这个语句的意思是
必须有输入且输入的变量中的第一个必须是字符!

nargin对应varargin的个数,是一个数值,而varargin用来存入输入变量,以元胞数组形式存储
nargout对应varargout的个数,是一个数值,而varargout用来存入输出变量,以元胞数组形式存储
附一个例子,仅供参考
function qiujuli(varargin)%求两点间距离
%%%%使用方法:qiujuli([2 3]),qiujuli([2 3],[4 5]),

if nargin==0
disp('未输入,请至少输入一点坐标值')
end

if nargin==1
x1=varargin{1};
d=sum(x1.^2)^0.5;
disp('输入只有一点,则求其距原点距离为:')
disp(['距离d=' num2str(d)])
end

if nargin==2
x1=varargin{1};
x2=varargin{2};
x=x1-x2;
d=sum(x.^2)^0.5;
disp('输入有两点,则求这两点距离为:')
disp(['距离d=' num2str(d)])
end

if nargin>2
disp('输入超过两个点,请至多输入两点坐标值')
end

end

function qiujuli(varargin)
%%%%使用方法:qiujuli([2 3]),qiujuli([2 3],[4 5]),
%%%%输入三个点或多个点时的处理方法一样,可以自己看着办
if nargin==0
disp('未输入,请至少输入一点坐标值')
end

if nargin==1
x1=varargin{1};
d=sum(x1.^2)^0.5;
disp('输入只有一点,则求其距原点距离为:')
disp(['距离d=' num2str(d)])
end

if nargin==2
x1=varargin{1};
x2=varargin{2};
x=x1-x2;
d=sum(x.^2)^0.5;
disp('输入有两点,则求这两点距离为:')
disp(['距离d=' num2str(d)])
end

end

啥意思?你是想求一个有限点集合当中所有两点距离中最短的一个距离么,用穷举法就可以啊

一点(x,y)到三点(x1,y1)、(x2,y2)和(x3,y3)之间的距离D为
D=sqrt((x-x1)^2+(y-y1)^2)+sqrt((x-x2)^2+(y-y2)^2)+sqrt((x-x3)^2+(y-y3)^2)
求min D,令dD/dx=0,dD/dy=0,求得x和y,代入上式即得


如何用MATLAB求矩阵的特征值?
计算器求矩阵特征值可以按以下方式来:1、按MODE,6,进入矩阵计算模式;2、根据提示创建一个新矩阵,刚进模式的时候会自动提示你创建,也可以按SHIFT,4,2,自己创建;3、选择矩阵A,B,C中的一个,再选大小,一共有两页;4,进入矩阵编辑界面,输入表达式,按[=] 可以编辑矩阵内容。按AC退出。按...

如何在matlab中求函数的导数?
用matlab求函数在指定点的数值导数如下:clear;clc;syms x f = sqrt(x^2+1);diff_f = diff(f);y1 = subs(diff_f,x,1)y2 = subs(diff_f,x,2)y3 = subs(diff_f,x,3)结果:y1 =0.7071y2 =0.8944y3 =0.9487 扩展链接:MATLAB 产品族可以用来进行以下各种工作:●数值分析 ●...

matlab里面求和的公式是什么
一、sum函数的基本用法 在MATLAB中,sum函数可以对一维数组或矩阵中的元素进行求和操作。如果操作对象是矩阵,sum函数默认会对每一列进行求和。例如,对于一个行向量A,使用sum即可求得向量中所有元素的和。二、对矩阵的列进行求和 对于矩阵,如果想按列进行求和,可以直接使用sum函数。例如,对于矩阵B,...

如何用MATLAB求阶乘?
matlab求1-10的阶乘的函数源码如下:function p = factorial()p=1;for a=1:10%设置要求的阶乘 for i=1:a%循环遍历从1到a p=p*i;%遍历相乘 end;\/\/函数结束 p%输出结果 p=1;%p还原其初始值 end end matlab特点:1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来...

如何用matlab求解微分方程?
分解的原则就是按照运算顺序一层一层的去掉,比如y=sin e^√x,他的最后一步运算时sin,所以先去sin,就设h(x)=sin(x),去掉sin后的最后一步运算是求指数e^√x,所以设g(x)=e^x,接着,去掉e后的最后一步运算是开方√x,所以设f(x)=√x,至此可以把h,g,f复合起来就是原函数了.第二题同理...

如何用matlab求解线性规划问题
基解有六个,基可行解有3个,按照两个x组合为0去代方程式,最优解为x1=4,x2=0,x3=2,x4=0。线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。 在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往也是困难的一步,模型建立得是否...

如何使用matlab求e的对数函数表达式
1、打开matlab之后,在命令行窗口中直接输入e,按回车键,可以看到显示未定义变量。2、如果只表达e自然数,可以通过exp(1)表示,在命令行窗口中输入,按回车键可以看到e的数值接近2.7183。3、以e为底的对数函数表示,可以通过log(n)表示,如在命令行窗口中输入log(10),按回车键得到结果2.3026。4...

matlab怎么求多元一次方程组
5)\/(x-1))1、解方程最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法:(1)x=inv(A)*b—采用求逆运算解方程组; (2)x=A\\B—采用左除运算解方程组PS:使用左除的运算效率要比求逆...

如何用matlab求解微分方程并画图
如何用matlab求解微分方程并画图,可以先用dsolve()或ode()求出其微分方程(组)的解析解或数值解,然后用plot()绘制其图形。例如:解微分方程 y'=y-2t\/y,y(0)=1,0<t<4 1、用dsolve()求解,代码及结果如下 2、用ode45()求解,代码及结果如下 3、当然喽,使用dsolve()或ode(...

如何用Matlab求一元二次方程式解的个数以及解
我们学习数学经常会遇到一元二次方程式,那么如何用Matlab软件求一元二次方程式解的个数以及各个解的值呢?下面小编给大家分享一下。1、首先打开Matlab软件,点击左上角的New Script按钮,如下图所示 2、接下来在弹出的界面中给新的脚本文件起一个名字,然后进行保存,如下图所示 3、接着我们在脚本...

保亭黎族苗族自治县13288342798: 用matlab怎么求点点距离 -
冀浅七味: 例如:x1(a,b) x2(c,d) s=sqrt((a-c)^2+(b-d)^2) 注意两点坐标值为常熟: 如x1(1,3) x2(4,5) s=sqrt((1-4).^2+(3-5).^2) s=3.6056

保亭黎族苗族自治县13288342798: 怎样用matlab求两组点之间的距离 -
冀浅七味: 怎样用matlab求两组点之间的距离 可以使用norm来做,比如:% By lyqmath clc; clear all; close all; p1 = [0 0]; p2 = [1 1]; norm(p1-p2)结果 ans = 1.4142>> 就是这两点的欧式距离,三维等情形类似处理.

保亭黎族苗族自治县13288342798: 如何编写一个matlab程序,计算任意两点间的距离 -
冀浅七味: a = [1,2];%任意数1,x,y坐标 b = [4,6];%任意数2,x,y坐标 d = norm(a-b);

保亭黎族苗族自治县13288342798: 在已知n个点三维坐标的情况下,求每两点之间的距离.用matlab. -
冀浅七味:[答案] 假设x是n个点的坐标 x = [1 1 1; 2 2 2; 3 3 3 ...; n n n ]; for i = 1:n for j = 1:n dis(i,j) = sqrt(sum((x(i,:)-y(j,:)).^2)); end; end;

保亭黎族苗族自治县13288342798: matlab 如何知道图片中任意两点之间的距离 -
冀浅七味: 首先你需要确定提取哪两个点 matlab中图像就是一个矩阵,其表示方式为f(i,j),这表是像素值(例如灰度值),i,j就是坐标值.i表示第几行,j表示第几列 提取其坐标值X1,Y1,X2,Y2,则距离为sqrt((X1-X2)^2 + (Y1 -Y2)^2)

保亭黎族苗族自治县13288342798: 给一组坐标怎么用MATLAB求两两点之间的距离 -
冀浅七味: 给一组坐标怎么用MATLAB求两两点之间的距离 用pdist方程.必须每一列为相同变量. 如[x1 y1;x2 y2; x3 y3; x4 y4......]; p2p_dist=pdist([x y]');

保亭黎族苗族自治县13288342798: 用MATLAB求图像中两特定点的距离? -
冀浅七味: 获得图片后,假定两点分别是A、B,得知A、B的行坐标和列坐标,也就是说A在第i1行、j1列,B在第i2行、j2列,则AB之间距离为h=sqrt((i1-i2)^2+(j1-j2)^2).

保亭黎族苗族自治县13288342798: 用matlab怎么求点到点的距离 -
冀浅七味: 点用一个三维数组表示. p=(x0,y0,z0) p=[1 2 3]; 面有不同的表示方式,常用的是一般式:ax+by+cz+d=0. a=2;b=3;c=4;d=5; 点到面的距离为:d=|ax0+by0+cz0+d|/sqrt(a^2+b^2+c^2) d=abs(a*p(1)+b*p(2)+c*p(3)+d)/sqrt(a^2+b^2+c^2)下面是matlab的例子 p=[1 2 3]; a=2;b=3;c=4;d=5; d=abs(a*p(1)+b*p(2)+c*p(3)+d)/sqrt(a^2+b^2+c^2)

保亭黎族苗族自治县13288342798: 用matlab软件计算任意两个点间距离的程序是什么? -
冀浅七味: clc;clear; x1=input('>>请输入A点的横坐标值:'); y1=input('>>请输入A点的纵坐标值:'); x2=input('>>请输入B点的横坐标值:'); y2=input('>>请输入B点的纵坐标值:'); disp('>>两点间距离dist:'); dist = sqrt((x2-x1)^2+(y2-y1)^2)计算结果: >>请输入A点的横坐标值:1 >>请输入A点的纵坐标值:1 >>请输入B点的横坐标值:2 >>请输入B点的纵坐标值:2 >>两点间距离dist:dist =1.4142

保亭黎族苗族自治县13288342798: 在matlab里求两个给定坐标距离的函数是什么? -
冀浅七味: x=[X1-X2,Y1-Y2] norm(x)点到直线距离d=|A*X1+B*Y1+C|/sqrt(A^2+B^2)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网