сопоставление дат без использования цикла

#matlab

#matlab

Вопрос:

У меня есть вектор даты date_vec, который, скажем, имеет каждый день с 2000 по сегодняшний день (хранится как номер даты). Затем у меня есть матрица с именем sale_matrix, которая имеет тип double и размер 8000 x 4.

Что мне нужно сделать, так это найти номер индекса для каждой даты в моей матрице продаж. Однако я просматривал datefind, который всегда возвращает результаты в списке заказов, и эти даты не будут в любом порядке. Глядя на функции даты MATLAB, я все равно не вижу ничего, кроме использования цикла for. Есть ли другой способ решить эту проблему?

Редактировать

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

Также NaN можно заменить фиктивной датой, если это упрощает задачу.

  sales matrix 
 potential_sale   confirmed_sale     completed_sale    cancelled_sale
 2000-05-06       2000-06-02         2000-08-15        NaN
 2004-11-14       2005-01-05         NaN               2005-01-12
 2002-02-16       2002-02-25         2002-04-10        NaN
 2010-03-08       2010-04-01         2010-04-19        NaN
 

Комментарии:

1. Некоторые примерные значения sale_matrix могут помочь нам лучше понять это.

2. Привет @Divakar пожалуйста, ознакомьтесь с обновлением.

3. Итак, у вас есть sales_matrix матрица datevectors с некоторыми из них NaNs , верно?

4. Тогда, как насчет этого — sales_matrix - datenum('2000-01-01') 1 ? То 1 есть для начала индексации с 1 вместо 0 , из-за вычитания. Не совсем уверен, искали ли вы это.

5. ах да! красиво и просто. Думаю, я слишком много думал об этом, еще раз спасибо!