It is my understanding that you want to combine 2 dataset based on 2 vectors 'timeA' and 'timeB', wherein you'd like to keep the data recorded by sensor B (and thus recorded in 'timeB'), which matches with the data recorded by sensor A. You then want to perform hourly averaging on the combined data.
You can combine the 2 datasets by using the 'ismember' function, wherein you can pass 'timeA' and 'timeB' as the arguments. This will give you the logical values and indices of all entries present in 'timeA', which are also present in 'timeB' (shorter dataset). You can then combine the 2 datasets using these indices. This way you can generate a combined dataset that has only those rows when sensor B was recording data. For hourly averaging you can refer to this link. You can use the isbetween function and define ranges using 'hours'. Using this you can extract the data that has timestamps between 'x' and 'y' hours. One way to perform averaging over the whole dataset could be to iterate over all the days(i.e. group recorded data by day), and perform hourly averaging for each day.
Hope this helps!