find matching character string across tables; take value from row with matching string in one table and add to new column in the other table

4 次查看(过去 30 天)
I have two tables. I want to take the i-th entry from table 1, find the matching string in table 2, and then grab a value from a different column in table 2 and add it to table 1. For example:
Table 1: Table 2:
Var1 Var2 Var 1 Var2
1 a 50 c
2 b 40 d
3 c 25 a
I want to compare Table1(1,2) to Table2(:,2), find that the 3rd row in Table 2 has the entry I want, and then add the value in Column 1 (25) to a new column in Table 1:
Table 1_updated:
Var 1 Var2 Var3
1 a 25
.
.
.
I have been trying something like this:
Table2(strcmp(Table1(1,3), Table2(:,3)==1,);
But this gives me an empty 0 x 3 table
Any ideas? Thanks in advance!

回答(1 个)

Alexis Black
Alexis Black 2019-9-28
I solved it - I needed to use Table.Var2 instead of indexing the table:
Table2(strcmp(Table1.Var3(1), Table2.Var3(:)==1,);
  1 个评论
Mia Grahn
Mia Grahn 2021-7-7
How did you actually make the table you wanted to? I am trying to do a for loop right now that looks for the same as you have put for table 1_updated cannot seem to figure out how to append to each row

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by