Matching Values from one Table to Another

8 次查看(过去 30 天)
Hi everyone,
Is there a way from me to match the numbers in two dataset and extract the values in the row?
For instance,
This is my first table:
This is my second table:
What is would like to do---> I would like to search for my second table values in the first table, specifically under "FirstVID" and "SecondVID". Once I have a match of these values, I would like the numbers on "FirstVID" or "SecondVID" to be replaced by the string "AV".
Is this posssible?
Thank you.

采纳的回答

Walter Roberson
Walter Roberson 2023-3-27
Change
FirstVID = NewTab (:,["FirstVID"])
to
FirstVID = NewTab {:,["FirstVID"]};

更多回答(1 个)

Joe Vinciguerra
Joe Vinciguerra 2023-3-27
Veh = [2007; 1265; 1266; 1269];
FirstVID = [1881; 1269; 2007];
SecondVID = [1892; 2188; 1266];
T = table(FirstVID, SecondVID);
% find data common to each table
[~, ~, ib1] = intersect(Veh, T.FirstVID);
[~, ~, ib2] = intersect(Veh, T.SecondVID);
% Convert to cell since you want mixed data types
T.FirstVID = num2cell(T.FirstVID);
T.SecondVID = num2cell(T.SecondVID);
% using the indexing found above, replace with "AV"
T.FirstVID(ib1) = {'AV'};
T.SecondVID(ib2) = {'AV'};
disp(T)
FirstVID SecondVID ________ _________ {[1881]} {[1892]} {'AV' } {[2188]} {'AV' } {'AV' }
Alternately, you could avoid converting to cells and simply repalce the indexed values with NaN, unless having it read "AV" is necessary.
  2 个评论
Jana Sarran
Jana Sarran 2023-3-27
Thank you for the help.
I tried using this code but I am getting an error message.
Please see the attached pdf document for the message.
It says that there is an error using Tabular/Intersect
Joe Vinciguerra
Joe Vinciguerra 2023-3-28
Glad you were able to resolve your error in the other thread. Please accept my answer.

请先登录,再进行评论。

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by