MATLAB Answers

How to select a specific element in a table using variables corresponding to table headers

1 view (last 30 days)
Rafael Cordero
Rafael Cordero on 31 May 2021
Edited: Stephen on 31 May 2021
Hello all,
Imagine I have the following table T:
I would like to programatically extract a specific Order corresponding to a specific Reference that is given in a separate variable.
Example, for:
var_name = 'Charlie'
What is the syntax to extract Charlie's Order (i.e. 15) using var_name?
Thank you

Accepted Answer

Stephen
Stephen on 31 May 2021
Edited: Stephen on 31 May 2021
How to select data from a table is explained here:
Ref = {'Catherine';'Bob';'Fred';'Anna'};
Order = [15;13;13;4];
Lambda = [12;14;21;46];
% name you want to match:
name = 'Catherine';
By far the easiest way is to use row names:
T1 = table(Order,Lambda,'RowNames',Ref)
T1 = 4×2 table
Order Lambda _____ ______ Catherine 15 12 Bob 13 14 Fred 13 21 Anna 4 46
out = T1{name,'Order'}
out = 15
Without row names requires the use of indexing (e.g. via STRCMP or similar):
T2 = table(Ref,Order,Lambda)
T2 = 4×3 table
Ref Order Lambda _____________ _____ ______ {'Catherine'} 15 12 {'Bob' } 13 14 {'Fred' } 13 21 {'Anna' } 4 46
idx = strcmpi(T2.Ref,name);
out = T2{idx,'Order'}
out = 15

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!