matlab中如何用代码表示两个数之间的街区(曼哈顿)距离

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中如何用代码表示两个数之间的街区(曼哈顿)距离相关的知识,希望对你有一定的参考价值。

欧式距离是这样表示,
function [d] = dist (x,y)
%计算x和y之间的距离
d=sqrt(sum((x-y).^2));
end
那么街区距离应该怎么表示呢?非常感谢!

参考技术A matlab新手努力帮个忙哈,可以用pdist函数解决,其它各种距离都可以用这个函数求:
x=[1,2,3,4]; %定义第一个数(行矢量)
y=[5,6,7,8]; %定义第二个数(行矢量)
all=[x;y]; %放到一起,准备调用pdist函数
cityblock=pdist(all, 'minkowski', 1); %计算闵可夫斯基距离,p=1时即曼哈顿距离
参考技术B mahal(x,y)追问

这是马氏距离吧?

追答

是的

追问

我要的是曼哈顿距离,不是马氏距离。好吧,采纳你吧

本回答被提问者采纳

matlab中如何用qr函数求特征值和特征向量,矩阵是mxn

eig求出矩阵奇异有复数结果,想用qr分解求,看到过求特征值的,想知道如何求特征向量
①矩阵不是方阵
②下一步主要是用特征向量(但特征值和特征向量都要求)
③最好能写出代码来
PS:求出的特征值和特征向量是按特征向量由大到小排列的么?
O(∩_∩)O谢谢
①可以无视了

先不要考虑matlab了, 先回去复习一下线性代数, 单个的矩阵但不是方阵何谈特征值

即使是方阵, QR分解也不是直接用来求特征值和特征向量的.
尽管求所有特征值和特征向量最重要的算法是QR算法, 数学上可以解释为反复做QR分解, 但实际上也并不该qr这个函数来实现.
当然, 如果你一定想用qr, 那么可以反复迭代
[Q,R]=qr(A); A=Q'*A*Q;
直到A收敛到对角块不超过2阶的分块上三角阵.
至于求特征向量, 对每个特征值各解一次方程组就行了.
就讲这些, 即使你看不明白, 我也不会继续回答了, 这纯粹是浪费时间.
参考技术A 1.矩阵qr分解直接用函数qr就可以了。qr函数适用于不是方针的矩阵分解。
2.用法[q,r]=qr(a)得到q是mm矩阵,r是mn.
3.排列大小的可以采用sort函数。
具体情况建议打开MATLAB 帮助浏览器详细看qr函数的用法。

以上是关于matlab中如何用代码表示两个数之间的街区(曼哈顿)距离的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB中如何用for 循环将结果代入矩阵中?

在java中如何用for循环把一个十进制数转换成二进制

Matlab求两个向量之间的各种距离

在matlab中如何用mat数据作图

如何用matlab实现两个函数的卷积运算

matlab中如何用qr函数求特征值和特征向量,矩阵是mxn