Given twovectors A & B, I'm trying to figure out how to get a numel(A)-by-numel(B) logical array C wherein C(i) is the result of ismember(B',A(i)) without using a for loop. I've tried feeding repmat'ed and tranposed versions of A & B into ismember, but to no avail.
How can I achieve the same result as
A = randi(11, [500 1]);
B = randi(10, [250 1]);
C = false(500,250)
for i = 1:numel(A)
C(i) = ismember(B',A(i));
end
without the for loop? If the answer is arrayfun, is that really any faster than a for loop?

 Respuesta aceptada

Voss
Voss el 2 de Dic. de 2022
C = A == B.';

1 comentario

Gabriel Stanley
Gabriel Stanley el 3 de Dic. de 2022
It works, but I don't understand why it works while the un-looped ismember use didn't. If I have time later I'll try to dig into that and improve my understanding. In the meantime, thank you.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2019b

Preguntada:

el 2 de Dic. de 2022

Comentada:

el 3 de Dic. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by