MATLAB Answers

0

Comparing columns and returning 0s for matching values

Latest activity Edited by Guillaume
on 8 Feb 2016
I have two columns in two separate tables:
T1 - Col A T2 - Col A
1 1
2 4
3 ` 5
4
5
I am looking to create in table 1 a column B containing zeros for those matching values between T1-colA and T2-colA.
The result will look like
T1 - Col A T1 - Col B
1 0
2
3 `
4 0
5 0
How could I accomplish this efficiently?

  1 Comment

...(sorry I forgot something) and for those values not matching, return a value (FOR EXAMPLE 1) so the resulting table will look like:
T1 - Col A T1 - Col B
1 0
2 1
3 ` 1
4 0
5 0

Sign in to comment.

1 Answer

Answer by Ingrid
on 8 Feb 2016
 Accepted Answer

is it a table that you have or an array? Have you looked into ismember to see if this does what you want?
doc ismember

  2 Comments

Thank you Ingrid! this function works well for what I am doing!
Whether or not it is truly a table or just a plain array, the answer is the same. Use ismember:
%assuming tables
T1.colB = ismember(T1.colA, T2.colA);
%assuming matrices
T1(:, end+1) = ismember(T1(:, 1), T2(:, 1));

Sign in to comment.