How to define the location/position of a number in a specific cell array?

4 views (last 30 days)
I have a question about a command in a code.
I have a 82x1 cell array named MY. In this array there is a number equal to "1" in the line 41. I would like to find the location/position of this number in this array (I mean I would like to have as a result the 41 line number). The other elements of this array have punctuations marks "[]" (see image uploaded
I tried to use:
location=find(table2array(MY{:}) == 1)
but it is no use ( I mean I want to have location=41).
Could you please help me?

Accepted Answer

Star Strider
Star Strider on 28 Jan 2023
Edited: Star Strider on 29 Jan 2023
It would help to have the actual cell array.
Try something like this —
MY = {[]; []; []; 1; []; []; []}
MY = 7×1 cell array
{0×0 double} {0×0 double} {0×0 double} {[ 1]} {0×0 double} {0×0 double} {0×0 double}
loc = find(cellfun(@(x)~isempty(x), MY))
loc = 4
EDIT — (29 Jan 2023 at 00:54)
Code revision (improved efficiency).

More Answers (1)

Voss on 28 Jan 2023
idx = find(cellfun(@(x)isequal(x,1),MY));


Find more on Cell Arrays 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!