index position of the 1

2 views (last 30 days)
khaled hassan
khaled hassan on 7 Nov 2016
Commented: Walter Roberson on 7 Nov 2016
Hi,
I have the following cell array
TEST = [1] [] [] [0] []
I want to get the index position of the 1 not the 0. thanks :) !

Accepted Answer

Walter Roberson
Walter Roberson on 7 Nov 2016
find( cellfun(@(C) numel(C) == 1 && C == 1, TEST) )
In the special case where each entry is only empty or a scalar, then
find( cellfun(@(C) C == 1, TEST) )
If you want to find a 1 anywhere in the cell:
find( cellfun(@(C) any(C == 1), TEST) )

More Answers (2)

KSSV
KSSV on 7 Nov 2016
TEST = {[1] [] [] [0] []} ;
% index position of 1
idx = find([TEST{:}] == 1)
  1 Comment
Walter Roberson
Walter Roberson on 7 Nov 2016
If you switch to
TEST = {[0] [] [] [1] []} ;
then [TEST{:}] would be [0 1] and you would return an index of 2, but the actual index should be 4.

Sign in to comment.


khaled hassan
khaled hassan on 7 Nov 2016
thank you a lot :) !!!!!!!!!!!!! it worked perfectly

Categories

Find more on Shifting and Sorting 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!