Сравнение чисел в Matlab - PullRequest
2 голосов
/ 30 июня 2010

Я пытаюсь классифицировать некоторые данные на основе евклидовых расстояний в matlab, единственная проблема состоит в том, что matlab дает мне числа, которые выглядят так, как расстояния

0 + 4.9713i
0 + 7.8858i

 num1<num2  
 num2<num1 

оба возвращают 0. Как это возможно?

Ответы [ 2 ]

3 голосов
/ 30 июня 2010

Числа, которые вы получаете, являются воображаемыми числами.Вы никогда не должны получать мнимые числа при расчете евклидовых расстояний.

Убедитесь, что ваши евклидовы расстояния правильные, например

distance=sqrt(deltaX.^2 + deltaY.^2)

Если вы действительно уверены, чтоваши расстояния должны быть комплексными числами, сделайте сравнение, используя, например, норму, то есть

norm(num2) > norm(num1)

Для меня это будет true.

1 голос
/ 01 июля 2010

Числа с действительными и мнимыми частями не подлежат заказу.Может быть, вы имеете в виду заказ по расстоянию от источника?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...