Проблемы с пересечением в Matlab

Рассмотрим следующий пример:

time = datenum('2010-03-03 00:00','yyyy-mm-dd HH:MM'):60/(60*24):...
    datenum('2010-07-31 23:00','yyyy-mm-dd HH:MM');

Jday = datenum('2010-01-01 00:00','yyyy-mm-dd HH:MM'):60/(60*24):...
    datenum('2010-12-31 23:00','yyyy-mm-dd HH:MM');

idx = intersect(time,Jday);

Почему idx не такой же размер, как время? Я бы подумал, что они должны быть одинаковыми по длине, так как время - это лишь часть дня. Есть идеи?

1 ответ

Решение

Вы создаете векторы, используя оператор двоеточия, с нецелым интервалом. поскольку intersect При сравнении элементов вы будете иметь неточности из-за их представления с плавающей точкой, и в этом случае я подозреваю, что это проблема. Если вы хотите проверить это, я предлагаю вам использовать ismember определить, какие члены не равны (но должны быть).

Другие вопросы по тегам