马氏距离matlab程序
时间: 2023-05-28 18:02:34 浏览: 72
hieyen.zip_matlab 马氏距离
这是一个计算马氏距离的matlab程序:
```matlab
function mdist = mahalanobisDist(X,Y)
% calculate the covariance matrix
covariance = cov(X);
% calculate the inverse of the covariance matrix
inverse_covariance = inv(covariance);
% calculate the mean of the data
mean_data = mean(X);
% calculate the difference between Y and mean of the data
diff = Y - mean_data;
% calculate the Mahalanobis distance
mdist = sqrt(diff*inverse_covariance*diff');
end
```
使用方法:
X表示数据矩阵,每行为一个样本,每列为一个特征;Y表示待测样本,每列为一个特征。调用该函数即可得到Y与X中所有样本的马氏距离。
例如:
```matlab
X = [1 2; 3.5 2; 2 4.5; 3 3; 3 4];
Y = [1.5 3];
mdist = mahalanobisDist(X,Y)
% 输出结果为
% mdist =
% 0.7602
% 2.5105
% 1.2247
% 1.0330
% 1.5811
```
其中,mdist的每个值依次表示Y与X中5个样本的马氏距离。
阅读全文