How to use find for a vector without a loop?

I have the following script but doesn't work (properly)
V_dates = [datenum(2030,1,1) datenum(2050,1,1) datenum(2075,1,1) datenum(2100,1,1)]
index = find(vector_with_dates == V_dates(:))
where vector_with_dates (size: 1x5000) is a vector having dates in serial date number form.
Now I would like to find the indexes of the vector_with_dates where the 4 numbers stored in V_dates are equal.
The only way I can think and it works properly is within a loop like this:
for i=1:length(V_dates)
index(i) = find(vector_with_dates == V_dates(i))
end
Is there a way to avoid the loop?
Thank you

 採用された回答

AbioEngineer
AbioEngineer 2019 年 8 月 21 日

0 投票

Hi!
If you want to find all the locations in which vector_with_dates contains ANY of the dates in V_dates, use ismember
[tf,loc]=ismember(vector_with_dates,V_dates)
find(tf)

1 件のコメント

ARGY B
ARGY B 2019 年 8 月 21 日
Nice.. it works! thanx

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeTime Series Objects についてさらに検索

質問済み:

2019 年 8 月 21 日

コメント済み:

2019 年 8 月 21 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by