Clear Filters
Clear Filters

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 views (last 30 days)
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!

Answers (1)

Alexis Black
Alexis Black on 28 Sep 2019
I solved it - I needed to use Table.Var2 instead of indexing the table:
Table2(strcmp(Table1.Var3(1), Table2.Var3(:)==1,);
  1 Comment
Mia Grahn
Mia Grahn on 7 Jul 2021
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

Sign in to comment.

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!