Subset a table based on a column and another vector

3 views (last 30 days)
So I have a table of values and one of the columns is patient_number. I have another vector of patient numbers I want to get information about from the table.
How do I subset the table based on the second vector that I have? I want the resulting subset to be in the same order of the subseting vector.
Thanks!

Answers (1)

Tejas
Tejas on 10 Jul 2025
Hello Steven,
To acheive the desired workflow, use the "ismember" function to find the indexes of patients from the table, that match with the patients in the vector. For more information on "ismember" function, refer to this documentation: https://www.mathworks.com/help/matlab/ref/double.ismember.html .
Below is an example showcasing how the "ismember" function can be used to acheive the desired workflow:
  • Create a sample table and the second vector.
T = table([101; 102; 103; 104], {'Alice';'Bob';'Charlie';'Dana'}, ...
'VariableNames', {'patient_number', 'name'});
wantedPatients = [101 103];
  • Use the "ismember" function to find the matching indexes and use them to retrieve the subset of table.
[found, idx] = ismember(wantedPatients, T.patient_number);
subset_T = T(idx(found), :);

Categories

Find more on Tables 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!