How to find index of a value in cell array

117 views (last 30 days)
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
Kristoffer Walker
Kristoffer Walker on 13 Dec 2019
Not at all intuitive, but it works great, even for logicals.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 25 Jan 2017
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
Walter Roberson
Walter Roberson on 8 Nov 2024 at 4:40
Looking again several years later, it looks like the code should use
[maxrow, maxcol] = find( cell2mat(B) == 6);

Sign in to comment.

Categories

Find more on Resizing and Reshaping Matrices 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!