Find index of cell values in another cell array without a loop

32 visualizaciones (últimos 30 días)
Vic
Vic el 3 de Nov. de 2024 a las 2:39
Comentada: Vic el 3 de Nov. de 2024 a las 13:25
Hi all,
I have 2 cell arrays. Cell array B is always smaller than A and its values are always contained in A.
I want to find the indexes of each value contained in B within A.
Here is what I have with a loop and it works.
A = {'Q' 'W' 'E' 'R' 'T' 'Y' 'U' 'I' 'O' 'P'};
B = {'W' 'R' 'O'};
for i=1:length(B)
Index(i) = find(strcmpi(A,B(i)));
end
I want to remove the loop for efficiency purposes.
What would you suggest?
Thanks,

Respuesta aceptada

Akira Agata
Akira Agata el 3 de Nov. de 2024 a las 3:24
It's time to use ismember function!
A = {'Q' 'W' 'E' 'R' 'T' 'Y' 'U' 'I' 'O' 'P'};
B = {'W' 'R' 'O'};
[~, index] = ismember(B, A)
index = 1×3
2 4 9
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
  1 comentario
Vic
Vic el 3 de Nov. de 2024 a las 13:25
Wonderful!
I knew it was something simple but I could not phrase my question properly on Google.
Thanks a lot

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by