finding number of a column in a cell (column that contains a specified string)

how could it be done for finding first which array of a cell is equal a specified string and in second, what is number of column that contains this string
for example:
CELL={'a','b','c','d','e','f',...}
finding 'a' in CELL?(which row and column)

 Accepted Answer

CELL={'a','b','c';'d','e','f'};
[Row,Col]=ind2sub(size(CELL),find(ismember(CELL,'e')))
or
[Row,Col]=ind2sub(size(CELL),find(strcmp(CELL,'e')))

5 Comments

ind2sub function is unnecessary:
[row col] = find(strcmp(CELL,'a'))
great! perfect!
speed of this one is so nice for a cell 600*600
Grzegorz Knor's find(strcmp(C, 'a')) is the fastest solution.
Hi Jan,
yes this the fastest that Fangjun told

Sign in to comment.

More Answers (2)

find(char(CELL)=='a')
Does that help?

4 Comments

thanks but errors:
??? Undefined function or method 'eq' for input arguments of type 'cell'.
now this error:
??? Error using ==> eq
Matrix dimensions must agree.

Sign in to comment.

See in documentation:
doc strfind
strfind(CELL,'a')

5 Comments

thanks a lot
in doc it says for idx=strfind(CELL,'a');
idx{:,:} must give indices
but when in command widow i run it, doesn't give indices
its very important for me to know the string is in which row and column
CELL={'a','b','c','d','e','f';'f','e','d','c','b','a'}
idx = strfind(CELL,'a');
[row col] = find(~cellfun(@isempty,idx))
thanks
it works good, only slow for a cell 600*600
thanks a lot
I definitely prefer Grzegorz's solution in the comment above:
find(strcmp(C, 'a'))

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!