Matlab函数—pdist、squareform

1.pdist函数

最近开始用matlab做一些算法,用到pdist()函数,发现网上很多的文章讲得不是太明白,我主要对pdist()的具体实现过程用例子的方式进行详述。

D = pidst(X)主要计算X的行的距离,例如输入X为m*n的矩阵,输出D为m*(m-1)/2的向量,计算方法如下例子:

X=[1,2;3,4;5,1] 3*2的矩阵;

pdist(X)计算结果为[2.8284,4.1231,3.6056];

计算方法为第二行与第一行距离(3-1)*(3-1)+(4-2)*(4-2)得到的结果开平方为2.8284,第三行与第一行距离(5-1)*(5-1)+(1-2)*(1-2)得到的结果开平方为4.1231,第三行与第二行距离(5-3)*(5-3)+(1-4)*(1-4)得到的结果开平方为3.6056.

2.squareform 函数

  调用格式:Z=squareform(Y,..)

对于M个点的数据集X,pdist之后的Y将是具有M*(M-1)/2个元素的行向量。

Y这样的显示虽然节省了内存空间,但对用户来说不是很易懂,如果需要对这些距离进行特定操作的话,也不太好索引。MATLAB中可以用squareform把Y转换成方阵形式,方阵中<i,j>位置的数值就是X中第i和第j点之间的距离,显然这个方阵应该是个对角元素为0的对称阵。

  • 30
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值