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?

采纳的回答

per isakson
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.

更多回答(2 个)

Image Analyst
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

Rui Zhao
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 个评论
Ole Hansen
Ole Hansen 2012-6-17
Thanks for your comment. It is not, however, an issue about lower and upper case. It is about searching for individual characters within a string, and about the position of the first and second character (the individual terms are always of length 2).
Image Analyst
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 CenterFile 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