matlab中如何用代码表示两个数之间的街区(曼哈顿)距离
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中如何用代码表示两个数之间的街区(曼哈顿)距离相关的知识,希望对你有一定的参考价值。
欧式距离是这样表示,
function [d] = dist (x,y)
%计算x和y之间的距离
d=sqrt(sum((x-y).^2));
end
那么街区距离应该怎么表示呢?非常感谢!
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谢谢
①可以无视了
即使是方阵, 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中如何用代码表示两个数之间的街区(曼哈顿)距离的主要内容,如果未能解决你的问题,请参考以下文章