2024年5月2日发(作者:)

常见距离公式的MATLAB代码(一)

常见距离公式的MATLAB代码(一)

在MATLAB中,我们可以使用多种方法来计算常见距离公式。下面是

一些常见的距离公式及其对应的MATLAB代码示例。

1. 欧氏距离(Euclidean Distance)

欧氏距离是最常见的距离度量方式,它是两个点之间的直线距离。

```matlab

function distance = euclideanDistance(point1, point2)

distance = norm(point1 - point2);

end

```

2. 曼哈顿距离(Manhattan Distance)

曼哈顿距离是两个点在平面上的绝对距离之和,即沿着正交轴的距离

和。

```matlab

function distance = manhattanDistance(point1, point2)

distance = sum(abs(point1 - point2));

end

```

3. 切比雪夫距离(Chebyshev Distance)

切比雪夫距离是两个点在平面上各个坐标差值的最大绝对值。

```matlab

function distance = chebyshevDistance(point1, point2)

distance = max(abs(point1 - point2));

end

```

4. 闵可夫斯基距离(Minkowski Distance)

闵可夫斯基距离是欧氏距离和曼哈顿距离的一种推广,可以调整一个

参数p来控制距离度量的形态。

```matlab

function distance = minkowskiDistance(point1, point2, p)

distance = norm(point1 - point2, p);

end

```

5. 马氏距离(Mahalanobis Distance)

马氏距离是衡量两个点之间的距离,同时考虑了维度间的协方差以及

维度之间的差异。

```matlab

function distance = mahalanobisDistance(point1, point2,

covarianceMatrix)

diff = point1 - point2;

distance = sqrt(diff' * inv(covarianceMatrix) * diff);

end

```

6. 余弦相似度(Cosine Similarity)

余弦相似度衡量了两个向量的夹角余弦值,可以表示两个向量的相似

性。

```matlab

function similarity = cosineSimilarity(vector1, vector2)

similarity = dot(vector1, vector2) / (norm(vector1) *

norm(vector2));

end

```

7. Jaccard相似度(Jaccard Similarity)

Jaccard相似度用于衡量两个集合的相似性,计算集合的交集与并集

之间的比例。

```matlab

function similarity = jaccardSimilarity(set1, set2)

intersection = numel(intersect(set1, set2));

union = numel(union(set1, set2));

similarity = intersection / union;

end

```

这些是常见的距离公式及其对应的MATLAB代码示例。您可以根据需

要使用这些代码来计算相应的距离或相似度。