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)

 Réponse acceptée

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 commentaires

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

Connectez-vous pour commenter.

Plus de réponses (2)

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

4 commentaires

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.

Connectez-vous pour commenter.

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

5 commentaires

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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by