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)

 Akzeptierte Antwort

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 Kommentare

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.
@Grzegorz, Good catch!
Hi Jan,
yes this the fastest that Fangjun told

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

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

4 Kommentare

thanks but errors:
??? Undefined function or method 'eq' for input arguments of type 'cell'.
sorry should be
find(char(CELL)=='a');
I corrected the answer up there.
now this error:
??? Error using ==> eq
Matrix dimensions must agree.

Melden Sie sich an, um zu kommentieren.

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

5 Kommentare

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'))
Hi Jan
OK let me check

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by