How to find index of a value in cell array

I have this Cell Array ‘A’ of size 3 by 7
A = { 3 4 [] [] [] [] []
2 6 -2 2 -2.1 2 2
-5 -5 25 1 [] [] []}
I want to find index of ‘6’ element in 2nd row and 2nd column The answer shall be row = 2 and column = 2

 Accepted Answer

the cyclist
the cyclist on 25 Jan 2017
Edited: the cyclist on 25 Jan 2017
isSix = cellfun(@(x)isequal(x,6),A);
[row,col] = find(isSix);

4 Comments

This answer is the best.
Not at all intuitive, but it works great, even for logicals.
It's useful,thanks.

Sign in to comment.

More Answers (1)

Re-using the framework of my answer to your earlier question:
B = A;
B(cellfun(@isempty, B)) = {NaN};
[maxrow, maxcol] = find( reshape(cell2mat(B), [], 1) == 6);

1 Comment

Looking again several years later, it looks like the code should use
[maxrow, maxcol] = find( cell2mat(B) == 6);

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!