Vlookup technique in Matlab

6 views (last 30 days)
Vespi
Vespi on 17 Mar 2016
Commented: Walter Roberson on 17 Mar 2016
I have:
  1. Single column array that I converted to table in matlab, which represent RGB values combined in one cell so 255119255 (RRRGGGBBB) -Note: this has 40448352 rows
  2. Imported table with 10 columns. Column 2 defines the object corresponding to the RGB combined value also 255119225 format (column 9) - Note: This has about 60 rows
I would like to find each cell value in table (1) and if there is a match to the value in Table 2, Column 9 I want it to give me the name corresponding to that value (found in Table 2 column 2). If no match then 'NAN'.
Thank you!

Accepted Answer

Walter Roberson
Walter Roberson on 17 Mar 2016
[tf, idx] = ismember(table1.Column1, table2.Column9);
results = repmat({'NaN'}, length(tf), 1); %did you say 'NaN' or NaN ?
results(tf) = table2.Column2(idx(tf));
You will need to adjust for the appropriate column names.
  2 Comments
Vespi
Vespi on 17 Mar 2016
Edited: Vespi on 17 Mar 2016
I wanted NAN in order to represent no match. Ideally I would like to get the nearest value since the RGB combination should represent an object.
I ran the code and cannot figure out the last line
results(tf) = table2.Column2(idx(tf));
I changed it to results(tf) = Object(idx(tf)); Where object is the name of the column from which I want the object values to be given for the corresponding RGB value.
Walter Roberson
Walter Roberson on 17 Mar 2016
You cannot just name a column, you have to name the table as well, like table2.Object
I am not clear as to whether your Object column is numeric or string?
You need to define "nearest", which is something that is not straight forward in colour.

Sign in to comment.

More Answers (1)

Kelly Kearney
Kelly Kearney on 17 Mar 2016
My vlookup function does this (using the same method Walter describes, in a nice little wrapper).

Categories

Find more on Tables in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!