Extracting data cell that match specific strings in different columns

Hello!
I have a table, T, with the following variable names: Type, Ta, Sub, Day, Try, Data
I ask the person for these different inputs: inType, inTa, inSub, inDay, inTry.
% Example:
inType = 'aa';
inTa = '1';
inSub = '001';
inDay = 'ape';
I want to grab and save the cell Data, for the Table row that has the specific variable inputs in the Example (need to search for the matching strings).
More table, T, information:
Type: 90x2 % char
Ta: 90x1 % double
Sub: 90x1 % cell array of character vectors
Day: 90x1 % cell array of character vectors
Try: 90x1 % double
Data: 90x1 % cell
Can you please help?
Thank you in advance!

 Accepted Answer

If I understand your problem correctly I think you could adapt the approach I show in the simple example below
% make example table
animal = {'cat' 'cat' 'dog' 'fish' 'cat' 'hamster'}'
size = {'large' 'small' 'large' 'small','large','large'}'
color = {'black','brown','white','red','striped','brown'}'
weight= [2.2,1.3,5,0.5, 1.75,0.2]'
T = table(animal,size,color,weight)
% find weight of large,striped, cat
query = table
query.animal = 'cat'
query.size = 'large'
query.color = 'striped'
% find the correct row in table
[found,idx] = ismember(query,T(:,1:3),'rows')% just use columns that need to be matched
% get the corresponding weight
w = T.weight(idx)

4 Comments

The first argument returned by ismember is a logical, set to true if a match is found. If you think there is some chance that a match will not be found you should check this before trying to do further manipulations on idx. You could also check if idx == 0
Hi, did this answer your question? Do you need any further ideas?
I'm glad that worked for you. Good luck with your project

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2021a

Asked:

on 27 Oct 2021

Commented:

Jon
on 12 Nov 2021

Community Treasure Hunt

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

Start Hunting!