How to extract data from one column using the data from the two other columns

1 view (last 30 days)
I have data with 3 columns, A B and C. A contains serial dates, and B contains data that corresponds to the serial date in column A. in column C, I have a much shorter column of select serial dates that I have to have the correspoding data for from column B. Is there a way to use column C to search column B and extract only the data that corresponds to the dates in column C?
Column A is all of the serial dates, column B is the soil moisture retrieved on that serial date in column A, and column C are the select serial dates that I need column B values for; so I want to be able to make an array of the column B values that correspond to the selected column C serial dates.
I have having problems putting this question into words properly, so if I was unclear i apologize and I can try to elaborate. Thank you!

Answers (1)

dpb
dpb on 3 Dec 2020
res=B(ismember(A,C));
  2 Comments
Claire
Claire on 4 Dec 2020
Edited: Claire on 4 Dec 2020
Hello, thanks for your help! this worked, but it returned far less values than i expected
i think it is only when the rows of A and C are adjacent and equal each other. in column C, i am missing a lot of datetimes that are present in A, so the datetimes in C are not organized or aligned with column A. sorry for not being clear about that!
is it possible to do this same process, but with any values of C that match those in A, regardless of whether or not the same dates are in the same row?
dpb
dpb on 4 Dec 2020
ismember is position independent.
The problem is more likely one of floating point precision -- try ismembertol

Sign in to comment.

Categories

Find more on Dates and Time in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!