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代码示例。您可以根据需
要使用这些代码来计算相应的距离或相似度。
发布评论