Vlookup technique in Matlab

6 次查看(过去 30 天)
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!

采纳的回答

Walter Roberson
Walter Roberson 2016-3-17
[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 个评论
Vespi
Vespi 2016-3-17
编辑:Vespi 2016-3-17
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 2016-3-17
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.

请先登录,再进行评论。

更多回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Tables 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by