finding data from unique id in two tables

6 Ansichten (letzte 30 Tage)
azim
azim am 15 Okt. 2021
Kommentiert: Rik am 15 Okt. 2021
hi,
i have a two tables one is the master table with the following fields:
table a
unique id name age
j1 john 34
j2 max 18
j3 pablo 17
j4 immy 32
and so on consisting of around 100 rows
and the second table is just a column of unique ids but not in the same order as the master table for eg:
table b
unique id
j3
j2
around 40 rows ( number can change)
how do i extract data from table a using unique id from table b and fill the name and age column in table b?
i want the output of table b to be
unique id name age
j3 pablo 17
j2 max 18
do i have use a for loop only and check each unique id or is there a better and faster way?
any help on this matter would be highly appreciated.
thanks

Akzeptierte Antwort

Rik
Rik am 15 Okt. 2021
You can use the ismember function.
  2 Kommentare
azim
azim am 15 Okt. 2021
thanks. just to confirm then to fill i use the for loop
Rik
Rik am 15 Okt. 2021
No need for any loops at all:
%Create the data
UID={'j1';'j2';'j3';'j4'};
name={'john';'max';'pablo';'immy'};
age=[34;18;17;32];
T1=table(UID,name,age);
UID={'j3';'j2'};
T2=table(UID);
%Find matches
[a,b]=ismember(T2.UID,T1.UID);
%Assign data
T2.name={T1.name{b}}.';
T2.age=T1.age(b);
T2
T2 = 2×3 table
UID name age ______ _________ ___ {'j3'} {'pablo'} 17 {'j2'} {'max' } 18

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Tables finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by