我现在有一光谱矩阵Xdata,一共180个样本,1557个波长,对应的浓度标签Ydata,怎么样用马氏距离剔除这180个样本中的异常数据呢?马氏距离法要求样本个数要大于维数,这该怎么用啊?是我使用出错了吗还是代码有问题?
X=Xdata
meanX=mean(X); %求均值
[m,n]=size(X);
covx=cov(X);%求协方差矩阵
cov_x=inv(covx);%逆矩阵
for i=1:m
dist(i)=(X(i,:)-meanX)*cov_x*(X(i,:)-meanX)';%求出每个样本到u的马氏距离,
end
dist= pdist(X,'mahalanobis');
错误使用 pdist (line 208)
The covariance matrix for the Mahalanobis metric must be symmetric and positive definite.
求指导