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

32 views (last 30 days)
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,

Accepted Answer

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

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!