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!

 Respuesta aceptada

Steven Lord
Steven Lord el 13 de Feb. de 2020

1 voto

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.)

Más respuestas (1)

Rafael Schwarzenegger
Rafael Schwarzenegger el 14 de Feb. de 2020

0 votos

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 comentario

Stephen23
Stephen23 el 14 de Feb. de 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

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Productos

Versión

R2017b

Preguntada:

el 13 de Feb. de 2020

Comentada:

el 14 de Feb. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by