Как заставить pdist игнорировать значение (Matlab) - PullRequest
0 голосов
/ 10 марта 2012

Я использую pdist для вычисления евклидовых расстояний между трехмерными точками (в Matlab). Однако у меня есть некоторые координаты, которые я не могу удалить из матрицы, но которые я хочу pdist игнорировать.

Я попытался перезаписать значения, которые хочу игнорировать, с помощью NaN, но pdist все еще использует их в расчете. Есть ли способ заставить pdist игнорировать значение в своем процессе?

1 Ответ

0 голосов
/ 10 марта 2012

Я не знаю pdist, но похоже, что вам нужно удалить определенные строки, чтобы он работал так, как вы хотите.Если бы вы нашли индексы строк, которые вам не нужны, вы могли бы сделать следующее:

d = [1,2,3;2,3,4;3,4,5]
d =
    1   2   3
    2   3   4
    4   5   6
i = [1 3]
d(i,:)
    1   2   3
    4   5   6
id = pdist(d(i,:)) % assume id=2
real_index = i(id) % now the real index is i(2)=3

Теперь у вас будет индекс строки в real_index.(pdist, кажется, не существует в моем matlab, поэтому я не могу получить реальный результат, но идея есть!)

...