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

15 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Stephen23
Stephen23 il 31 Mag 2021
Modificato: Stephen23 il 31 Mag 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

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by