when using intersect function i need all rows of B and matching rows of A. how can i do it?

1 回表示 (過去 30 日間)
i have two varibales A and B of variable sizes for each iteration. lets take first iteration. in 1st iteraton i want to find all rows & column values of B and rows of A which matches with B. and for rows which are not matching i want as zero as given below. like 8542 is not present in A but present in B so in old id column for 8542 i want as zero.
eg.
A id B id
2451 10 2451 15
2554 5 2554 7
5419 2 5419 5
8542 9
i want output like this
B id old id
2451 15 10
2554 7 5
5419 5 2
8542 9 0

採用された回答

Stephen23
Stephen23 2021 年 11 月 22 日
T1 = array2table([2451,10;2554,5;5419,2],'VariableNames',{'A','id'})
T1 = 3×2 table
A id ____ __ 2451 10 2554 5 5419 2
T2 = array2table([2451,15;2554,7;5419,5;8542,9],'VariableNames',{'B','id'})
T2 = 4×2 table
B id ____ __ 2451 15 2554 7 5419 5 8542 9
[X,Y] = ismember(T2.B,T1.A);
Y(X) = T1.id(Y(X));
T2.old_id = Y
T2 = 4×3 table
B id old_id ____ __ ______ 2451 15 10 2554 7 5 5419 5 2 8542 9 0

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGet Started with MATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by