根据matlab中的两个日期时间数组逻辑索引数据

时间:2015-05-11 13:51:47

标签: matlab datetime indexing logical-operators

我会直接跳到一个最小的例子,因为我发现这很难说出来。我有以下示例:

Data.Startdate=[datetime(2000,1,1,0,0,0) datetime(2000,1,2,0,0,0) datetime(2000,1,3,0,0,0) datetime(2000,1,4,0,0,0)];
Data.Enddate=[datetime(2000,1,1,24,0,0) datetime(2000,1,2,24,0,0) datetime(2000,1,3,24,0,0) datetime(2000,1,4,24,0,0)];
Data.Value=[0.5 0.1 0.2 0.4];
Event_start=[datetime(2000,1,1,12,20,0) datetime(2000,1,1,16,0,0) datetime(2000,1,4,8,0,0)];
Event_end=[datetime(2000,1,1,14,20,0) datetime(2000,1,1,23,0,0) datetime(2000,1,4,16,0,0)];

如果Data.Startdate和Data.Enddate之间的任何时间落在Event_start和Event_end之间,我想要做的是向Data结构添加一个标志(例如1)。在上面的示例中,Data.Flag的值为1 0 0 1,因为从Event_start和Event_end向量可以看到1月1日和1月4日有事件。我的想法是,我将使用此标志进一步处理数据。

我确信这很简单,但感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:2)

我会使用 $query="select RequestedId from friend_request where RequestingId=?"; $stmt=$mysqli->stmt_init(); $stmt->prepare($query); $stmt->bind_param('i',$requestinguserid); $stmt->execute(); $stmt->bind_result($RequestedId); $stmt->fetch(); $stmt->store_result(); if($stmt->num_rows > 0) { return $RequestedId; } else{ return 0; } 将日期转换为数字,然后使用datenum进行相当方便的比较:

bsxfun