Logical lookup between two dates

I am trying to create a logical lookup between 3 date vectors. Vector a is the lookup value (a date), Vector b is a start date, c is an end date. a is a larger size than b and c, which are both the same size.
I want to return a logical response (1) when a is b<=>c.
The vector size seems to be the main problem when trying to write this. I know there is a simple way to do it, but cant find the answer.

3 个评论

Can you share a sample of your code? Also since you mentioned that a is larger than b and c, so how do you want to deal with that?
What does "b<=>c" mean? What exactly is a "date vector"? Please provide some input data.
a is a 282x1 matrix containing sequential dates. b is a 50x1 matrix containing start dates. c is a 50x1 matrix containing end dates. I want to find out how many times the values in 'a' occur between a start date and end date - represented by the same row # in 'b' and 'c'. I don't have any code to share, I've tried indexing b and c using a, but I cant get anything but errors. I'm sure there is an elegant way of doing this...

请先登录,再进行评论。

 采纳的回答

Assuming R2016b or later:
sum(a >= b' & a <= c')
In earlier versions
sum(bsxfun(@ge, a, b') & bsxfun(@le, a, c'))
a, b, c must be date numbers

1 个评论

Thanks - I'm on 2015b so the second answer worked. You've saved several hours of going around in circles. Thanks!

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Calendar 的更多信息

产品

版本

R2015b

标签

Community Treasure Hunt

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

Start Hunting!

Translated by