Search for individual characters within string
조회 수: 5 (최근 30일)
이전 댓글 표시
Say I have:
cell_array={'AX','BY'};
It is easy to manipulate the terms 'AX' and 'BY' (to isolate, sort, identify etc.), but I cannot seem to find an approach to search for the individual components within 'AX' or 'BY'.
I would like to consider each character in the string individually, i.e. 'A' or 'X' in 'AX'. Basically, I want to be able to search for 'A' or 'X' in 'AX' without having to modify 'AX'.
Is that possible?
댓글 수: 0
채택된 답변
per isakson
2012년 6월 17일
Run this
cell_array = {'AX'; 'BY'; 'CXXYXXYYYX'; 'DYXZZZXXYXZ'};
cac = cellfun( @(c) strfind( cell_array, c ), {'A','Y'}, 'uni', false );
cac{2}
cac{2}{3}
ans =
[]
[ 2]
[1x4 double]
[1x2 double]
ans =
4 7 8 9
>>
Which says that the letter, "Y", exists in the second, third and forth string. In the third string "Y" appears in position 4,7,8 and 9.
댓글 수: 0
추가 답변 (2개)
Image Analyst
2012년 6월 17일
Try to adapt this demo code:
% Construct a sample cell array.
cell_array={'AX'; 'BY'; 'CXXYXXYYYX'; 'DYXZZZXXYXZ'};
% Now find X and Y locations for each row.
for k = 1 : size(cell_array, 1)
% For each row in the cell array...
% Get the string inside the cell.
cellContents = cell_array{k}
% Find arrays giving the indexes of X and Y.
xIndexes = strfind(cellContents, 'X')
yIndexes = strfind(cellContents, 'Y')
end
댓글 수: 0
Rui Zhao
2012년 6월 17일
For searching for 'x' in 'AX', you can search the uppercase of input via doing this:
char(double('x') - 32); % translate the 'x' into ASCII number and subtract 32 to get uppercase 'X'.
For searching lowercase, vice versa. char(double('X') + 32);
댓글 수: 2
Image Analyst
2012년 6월 17일
Isn't the position of the first character always 1 and the position of the second character always 2?
참고 항목
카테고리
Help Center 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!