У меня есть два вектора длиной около 200 000. Они состоят из дат в формате данных.find возвращает пустую матрицу
%datenums
date_exp = datenum(data_exp(:,1:6));
date_sim = datenum(data_sim(:,1:6));
Я хочу найти даты в date_exp, которая существует в date_sim.
Затем удалите значения из date_exp
Я использовал инструмент IsMember, но в конечном итоге на I = 38 находят retunrs: Неправильное назначение с прямоугольной пустой матрицей.
Ошибка в фильтре (строка 18)
с (я) = найти (IsMember (date_sim (:), date_exp (я)), 1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c = zeros(length(date_sim),1);
for i=1:length(date_sim)
c(i)= find(ismember(date_sim(:),date_exp(i)),1);
if isempty(c(i)) == 1
c(i) = 0;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Я бы очень полезно, если бы кто-нибудь может помочь мне здесь.
Если 'find' возвращает пустую матрицу, это означает, что истинных значений нет. 'date_exp (38)' не находится в 'date_sim'. Также вместо 'find' вы можете использовать' [~, c (i)] = ismember (date_exp (i), date_sim); ' – Suever