Проблемы с пересечением в 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
определить, какие члены не равны (но должны быть).