• ## Dist函数详解

千次阅读 2019-10-07 11:06:54
1、Dist函数的算法如下(很显然该算法的本质就是常说的欧氏距离算法) R(i,j)=SQRT(F(i)^2+G(j)^2)where: F(i)=iIF0<=i<=n/2 =n-iIFi>n/2 G(i)=iIF0<=i<=m/2 =m-iIFi...

1、Dist函数的算法如下(很显然该算法的本质就是常说的欧氏距离算法)
R(i,j) = SQRT(F(i)^2 + G(j)^2)   where:
F(i) = i  IF 0 <= i <= n/2
= n-i  IF i > n/2
G(i) = i  IF 0 <= i <= m/2
= m-i  IF i > m/2
图解：tvscl,dist(200) 扩展：SURFACE, DIST(20), /SAVE IDL实现源码：

; $Id: //depot/Release/ENVI51_IDL83/idl/idldir/lib/dist.pro#1$
;
; Copyright (c) 1982-2013, Exelis Visual Information Solutions, Inc. All
;       rights reserved. Unauthorized reproduction is prohibited.
;

;+
; NAME:
;    DIST
;
; PURPOSE:
;    Create a rectangular array in which each element is proportional
;    to its frequency.  This array may be used for a variety
;    of purposes, including frequency-domain filtering and
;    making pretty pictures.
;
; CATEGORY:
;    Signal Processing.
;
; CALLING SEQUENCE:
;    Result = DIST(N [, M])
;
; INPUTS:
;    N = number of columns in result.
;    M = number of rows in result.  If omitted, N is used to return
;        a square array.
;
; OUTPUTS:
;    Returns an (N,M) floating array in which:
;
;    R(i,j) = SQRT(F(i)^2 + G(j)^2)   where:
;         F(i) = i  IF 0 <= i <= n/2
;              = n-i  IF i > n/2
;         G(i) = i  IF 0 <= i <= m/2
;              = m-i  IF i > m/2
;
; SIDE EFFECTS:
;    None.
;
; RESTRICTIONS:
;    None.
;
; PROCEDURE:
;    Straightforward.  The computation is done a row at a time.
;
; MODIFICATION HISTORY:
;    Very Old.
;     SMR, March 27, 1991 - Added the NOZERO keyword to increase efficiency.
;                (Recomended by Wayne Landsman)
;    DMS, July, 1992.  - Added M parameter to make non-square arrays.
;   CT, RSI, March 2000: Changed i^2 to i^2. to avoid overflow.
;-
function dist,n,m  ;Return a rectangular array in which each pixel = euclidian
;distance from the origin.
compile_opt idl2

on_error,2              ;Return to caller if an error occurs

n1 = n
m1 = (n_elements(m) le 0) ? n1 : m
x=findgen(n1)        ;Make a row
x = (x < (n1-x)) ^ 2    ;column squares

a = FLTARR(n1,m1,/NOZERO)    ;Make array

for i=0L, m1/2 do begin    ;Row loop
y = sqrt(x + i^2.) ;Euclidian distance
a[0,i] = y    ;Insert the row
if i ne 0 then a[0, m1-i] = y ;Symmetrical
endfor
return,a
end

2、用法：
Dist(20,20)生成一个20×20的数组，当用户输入Dist(20),则默认行与列都是20。
3、IDL帮助的解释：
DIST
The DIST function creates an array in which each array element value is proportional to its frequency. This array may be used for a variety of purposes, including frequency-domain filtering.
This routine is written in the IDL language. Its source code can be found in the file dist.pro in the lib subdirectory of the IDL distribution.
Examples
; Display the results of DIST as an image:TVSCL, DIST(100)
Syntax
Result = DIST(N [, M])
Return Value
Returns a rectangular array in which the value of each element is proportional to its frequency.
Arguments
N
The number of columns in the resulting array.
M
The number of rows in the resulting array. If M is omitted, the resulting array will be N by N.
Keywords
None.

转载于:https://www.cnblogs.com/rockman/p/3946658.html
展开全文 • Matlab dist函数 对应 python 代码 Matlab 中的dist dist()函数，求矩阵和向量之间的欧式距离 A：nd的矩阵 B: 1d的矩阵 C = dist(A,B) :得到的也是n*d的矩阵 Python 中现有的求距离函数 python 的 cdist和pdist 都不...
Matlab dist函数 对应 python 代码
Matlab 中的dist
dist()函数，求矩阵和向量之间的欧式距离
A：nd的矩阵
B:   1d的矩阵
C = dist(A,B) :得到的也是n*d的矩阵
Python 中现有的求距离函数
python 的 cdist和pdist 都不对应Matlab的dist()函数
cdist(A,B) 得到的是n*1 的向量
cdist 与pdist 区别

distance.cdist()方法
distance.pdist()方法

输入
distance.cdist()方法	distance.pdist()方法输入	输入两个距离（A、B），计算方法是X中的点一次与Y中的点求距离。
输入一个数组点（X），里面的元素反复对比求距离（i -> i+1距离，i -> i+2距离，i -> i+3 距离…）

输出
返回 n形状*1形状的向量
返回一个列表

Python 实现Matlab中的dist
python 版的dist 距离函数（求欧式距离）如下：
## matlab 中的 dist
import numpy as np

def mdist(w,p):
S,R = w.shape
Q = p.shape
z = iDistApplyCPU(w,p,S,Q)
return z

def iDistApplyCPU(w,p,S,Q):
z = np.zeros((S,Q))
if (Q<S):
pt = p.T
for q in range(Q):
z[:,q] = np.sum((w-pt[q,:])**2, 1)
else:
wt = w.T
for i in range(S):
z[i,:] = np.sum((wt[:,i]-p)**2, 0)
z = np.sqrt(z)
return z

A：nd的矩阵
B:   1d的矩阵
C = mdist(A,B) : 也会得到的像Matlab中dist，是n*d的矩阵
参考：

求距离3——distance.pdist()方法，返回距离值
Matlab 帮助文档


展开全文  python matlab numpy 机器学习
• dist函数dist函数就是欧式距离加权函数dist(W,P)中：W——S×R的权值矩阵；P——R×Q的矩阵，表示Q个输入（列）向量例：a=[1 2 3],b=[4 5 6]dist(a,b')=sqrt((1-4)^2+(2-5)^2+(3-6)^2)=5.1962参考MathWorks里面的...
1 dist函数dist函数就是欧式距离加权函数dist(W,P)中：W——S×R的权值矩阵；P——R×Q的矩阵，表示Q个输入（列）向量例：a=[1 2 3],b=[4 5 6]dist(a,b')=sqrt((1-4)^2+(2-5)^2+(3-6)^2)=5.1962参考MathWorks里面的dist函数https://cn.mathworks.com/help/nnet/ref/dist.html后续更新高维...2 欧式距离欧式距离(Euclid Distance)也称欧几里得度量、欧几里得距离，是一个通常采用的距离定义，它是在m维空间中两个点之间的真实距离，在二维空间中的欧氏距离就是两点之间的直线距离二维空间的欧式距离公式  d=sqrt((x1-x2)^2+(y1-y2)^2)学习CV第一天，加油，坚持版权声明：本文为博主原创文章，未经博主允许不得转载。 https://blog.csdn.net/Broccoli_Lian/article/details/79690131
展开全文  欧氏距离 MATLAB
• ## matlab dist函数

千次阅读 2014-11-14 22:31:00
dist——欧式距离加权函数（Euclidean distance weight function） 语法： Z = dist(W,P) df = dist('deriv') D = dist(pos) 描述：dist是一个欧式距离加权函数，给一个输入使用权值，去获得加权的输入。 1、...
dist——欧式距离加权函数（Euclidean distance weight function）
语法：
Z = dist(W,P)    df = dist('deriv')    D = dist(pos)
描述：dist是一个欧式距离加权函数，给一个输入使用权值，去获得加权的输入。
1、dist(W,P)中：W——S×R的权值矩阵；P——R×Q的矩阵，表示Q个输入（列）向量
2、dist('deriv')返回‘’，因为dist没有导函数。
3、dist也是一个层距离函数，可以被用来寻找一层中神经元之间的距离。
dist(pos)输入一个参数，pos——N×S的神经元位置矩阵，返回S×S的距离矩阵
例子：
1、这里，我们定义一个随机权重矩阵W，以及输入向量P，并且计算相应的加权输入Z
W = rand(4,3);       P = rand(3,1);       Z = dist(W,P)
2、我们定义10个神经元的随机的位置矩阵，并且寻找他们的距离,这些神经元是在3维空间中的。
pos = rand(3,10);
D = dist(pos)
综上可知：
dist可以计算样本集中多个样本两两之间的距离矩阵。
对于图像I，将其分成n个超像素，每个超像素的特征有3维，那么形成3×n的超像素特征矩阵M，每列表示一个超像素。
此时，使用dist(M)，就会得到一个n×n的矩阵N，其中的元素Nij表示的是第i个超像素和第j个超像素特征之间的欧式距离。

转载于:https://www.cnblogs.com/rong86/p/4098328.html
展开全文 • cume_dist 如果按升序排列，则统计：小于等于当前值的行数/总行数(number of rows ≤ current row)/(total number of rows）。如果是降序排列，则统计：大于等于当前值的行数/总行数。 示例： 1. 统计小于等于...
• 转自：http：//www.maomao365.com/？摘要： 下文讲述sqlserver2012中CUME_DIST函数的详细使用说明实验环境：sqlserver 2012 declare @test table（keyId int，info varchar（20），qty int） insert into @test...
• CUME_DIST函数以某列作为基准，计算其它行相对于基准行数据的比例、差距比例，比较容易理解 先看下测试数据 DECLARE @TestData TABLE( ID INT IDENTITY(1,1), Department VARCHAR(20), LastName VARCHAR(20), Rate ...
• CUME_DIST：- ============= 此功能计算的是分配的行数少于或等于的行数少于或等于行数的比率。 PERCENT_RANK：此函数使用公式计算行的分配比例与分区中行数的比例 （RRP-1）/（NRP-1） 分区的RRP等级。 NRP-行的...
• 本文主要讨论PERCENT_RANK 和 CUMM_DIST 两个函数。两者都是返回当前行的相对位置，值在0~1之间；其中PERCENT_RANK的计算公示为： (rank-1) / (total rows – 1)；CUMM_DIST对应公示为：(rank) / (total rows) 。 ...
• 1.使用CHIINV(概率，自由度)，在Excel中绘制卡方分布。...2.使用GAMMA.DIST(χ, υ/2,2, 积累与否)，在Excel中绘制卡方分布。 　卡方（χ2）函数是伽马函数的特例. 　当：α=υ/2，β=2时，此时的伽马函数就...
• SQL> select a,cume_dist(50) within group(order by b desc) cum_50 from wltest group by a; A CUM_50 ---------- ---------- 1 .5 2 .333333333 3 .5 4 .8 5 1 ----------------------------------------------...
• ## matlab dist函数  …

万次阅读 2017-03-14 10:50:45
dist(A,B)计算A中每个行向量与B中每个列向量之间欧氏距离，A的行向量维数必须等于B的列向量维数 a=[1,2,3],b=[-1,5,6],c=[1,0,1]求a,b,c欧氏距离 dist(a,b')=4.6904, dist(a,c')= 2.8284 dist(c,b')= 7.3485 ...
• 开发环境：sql server 2008 R2 需求： ...在sql server 2012里面有CUME_DIST函数，但在sql server 2008 R2里面没有。 现在想取得CUME_DIST函数每种产品最接近80%对应的价格，请问如何实现？谢谢！
• NORM.S.DIST () 和 NORM.DIST ()是excel 提供的两个函数，用于求正态分布下累计概率面积及曲线上对应的概率值，避免将正态分布标准化及查询标准正态分布概率表。 NORM.S.DIST 函数 返回标准正态分布函数（该分布的... excel 概率统计
• 1、CUME_DIST函数 CUME_DIST 小于等于当前值的行数/分组内总行数 SELECT cookieid, createtime, pv, CUME_DIST() OVER(ORDER BY pv) AS rn1, CUME_DIST() OVER(PARTITION BY cookieid ORDER BY pv) AS rn2 FROM... Hive
• 最近在整理 Hie 分析函数资料的时候，看到了 CUME_DIST，百度后还是不知其意。于是乎用起了之前介绍的 Webcrawler 搜索引擎 ：http://www.webcrawler.com/ 发现 SQL Server中也包含该分析函数。接下来让我们看看...
• –CUME_DIST：小于等于当前值的行数/分组内总行数 查询语句 比如，统计小于等于当前薪水的人数，所占总人数的比例 select dept, userid, sal, cume_dist() over (order by sal) as rn1, cume_dist() ...
• 1. 常用分析函数下表列出了一些分析函数以及描述信息：分析函数描述RANK返回数据项在分区中的排名。排名值序列可能会有间隔DENSE_RANK返回数据项在分区中的排名。排名值序列是连续的，不会有间隔PERCENT_RANK计算... Hive RANK ROW_NUMBER NTILE
• gp_dist_random('gp_id')本质上就是在所有节点查询gp_id， gp_dist_random('pg_authid')就是在所有节点查询pg_authid， 使用greenplum时，如果需要调用一个函数，这个函数很可能就在master执行，而不会跑到...
• inet-enacl-dist 一个dist模块，它用类似的inet_tls_dist替换了Vanilla Erlang不安全的inet_tls_dist，但另一个dist_util模块使用了更安全的哈希函数和随机数生成器。 Erlang
• 两个序列分析函数不是很常用，这里也介绍一下。 环境信息： Hive版本为apache-hive-0.14.0-bin Hadoop版本为hadoop-2.6.0 Tez版本为tez-0.7.0 1. CUME_DIST 小于等于当前值的行数/分组内总行数 创建表： ...
• 用实例数据解释SQL SERVER中CUME_DIST和PERCENT_RANK函数
• select id, value, cume_dist() over (order by id) as percent from a7; 1 100 0.2 2 200 0.4 3 300 0.6 4 400 0.8 5 500 1 本文转自健哥的数据花园博客园博客，原文链接：...
•  欧几里得距离权函数 This MATLAB function takes these inputs, W S-by-R weight matrix  P R-by-Q matrix of Q input (column) vectors FPStruct of function parameters (optional, ignored)  Z = dist
• 参考网址：Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK – lxw的大数据田地，自己试着在mysql里做了一遍。 数据准备：表salary CUME_DIST CUME_DIST 小于等于当前值的行数/分组内总行数 比如，统计小于等于...
• group by是对检索结果的保留行进行单纯分组，一般和聚合函数一起使用例如max、min、sum、avg、count等一块用。partition by虽然也具有分组功能，但同时也具有其他的高级功能。 CUME_DIST 小于等于当前值的行数/分组...  ...