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)

 채택된 답변

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

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

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

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

댓글 수: 4

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.

댓글을 달려면 로그인하십시오.

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

댓글 수: 5

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

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by