Issue regarding mahalanobis distance function

5 次查看(过去 30 天)
Hi, i am currently working on my thesis and i am trying the mahalanobis distance function to get the answer. The problem is i have a matrix of 242 lines and 2 colums and. In the first columns i have different mean values and in second column i have the standard deviation. What i want is at each line(in a for loop) i want to compare the line standard deviation and mean with the first line. Ultimately having a vector of 1 column and 242 lines. Can someone tell me how this can be done.
I tried using the 'mahal(X,Y)' but it does not work when dimension of both vectors are the same.

回答(2 个)

Geoff Hayes
Geoff Hayes 2019-2-17
Marc - please clarify what you mean by i want to compare the line standard deviation and mean with the first line. If X is your 242x2 matrix, then isn't the comparison just
mDist = mahal(X(1,:), X(k, :));
where k is the kth row that you are comparing to the first row in the for loop?
  2 个评论
Marc Saade
Marc Saade 2019-2-17
yes i tried that but it did not work. it give this error:
Error using mahal (line 38)
The number of rows of X must exceed the number of columns.
Error in Untitled2 (line 37)
mDist(k) = mahal(s(1,:), s(k, :));
Geoff Hayes
Geoff Hayes 2019-2-17
Marc - from mahal it seems that the second input needs more rows than columns. Are you sure that you want to be using mahal?

请先登录,再进行评论。


Marc Saade
Marc Saade 2019-2-17
what is theire other that function, is theire a function that calculates the cos distance?
  1 个评论
Geoff Hayes
Geoff Hayes 2019-2-17
are you just trying to find the nearest distance between the two sets of values? perhaps just use the squared distance? Something like
dist = sqrt(sum((X(1,:) - X(k, :))^2));
Or would this not produce the results you need/expect?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by