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

3 Ansichten (letzte 30 Tage)
Vic
Vic am 3 Nov. 2024
Kommentiert: Vic am 3 Nov. 2024
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,

Akzeptierte Antwort

Akira Agata
Akira Agata am 3 Nov. 2024
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 Kommentar
Vic
Vic am 3 Nov. 2024
Wonderful!
I knew it was something simple but I could not phrase my question properly on Google.
Thanks a lot

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by