vlookup type matrix creating

1 vue (au cours des 30 derniers jours)
Rafael Schwarzenegger
Rafael Schwarzenegger le 13 Fév 2020
Commenté : Stephen23 le 14 Fév 2020
Hello, I would like to create a vlookup (excel) type operation that searches matrix A in matrix B and creates matrix C. How could I do it please in the most easy way?
A = [0 0 1 0.25;
0 1 1 0.75]
B = [0 0 1;
0 1 1;
0 1 1;
0 0 1;]
C = [0 0 1 0.25;
0 1 1 0.75;
0 1 1 0.75;
0 0 1 0.25;]
Thank you for any ideas!

Réponse acceptée

Steven Lord
Steven Lord le 13 Fév 2020
Since this sounds like it might be a homework question, I'm only going to point you in the direction of a useful function: ismember (with the 'rows' option.)

Plus de réponses (1)

Rafael Schwarzenegger
Rafael Schwarzenegger le 14 Fév 2020
This might do:
BB = zeros(4,4);
for i=1:2
temp = [A(i,1:end-1)==B]; temp = logical(prod(temp,2));
BB(temp,:) = repmat(A(i,:),sum(temp),1);
end
  1 commentaire
Stephen23
Stephen23 le 14 Fév 2020
The MATLAB way:
>> [~,X] = ismember(B,A(:,1:3),'rows');
>> C = A(X,:)
C =
0.00000 0.00000 1.00000 0.25000
0.00000 1.00000 1.00000 0.75000
0.00000 1.00000 1.00000 0.75000
0.00000 0.00000 1.00000 0.25000

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by