Replacing non-alphabetic characters with numbers?
2 次查看(过去 30 天)
显示 更早的评论
Hello everyone,
I'm trying to solve a question and it's asking me to take the variable:
TS1='%@3Gb6'
and convert the non-alphabetic characters to zeros and the alphabetic characters with ones, saving the result as a new variable. Ideally I'm trying to get a new variable to saves as:
result=[0 0 0 1 1 0]
I would greatly appreciate the help on this issue.
0 个评论
采纳的回答
Azzi Abdelmalek
2015-1-22
编辑:Azzi Abdelmalek
2015-1-22
out=zeros(size(TS1));
out(regexpi(TS1,'[A-Z]','start'))=1
%OR
str=['A':'Z' 'a':'z'];
out=ismember(TS1,str)
0 个评论
更多回答(1 个)
Matz Johansson Bergström
2015-1-22
Yet another answer, just for the "cellfun" of it ;-)
tmp = cellfun(@(x) isstrprop(x, 'alpha'), {TS1}, 'UniformOutput', false);
out = cell2mat(tmp)
First, check the property of each element (cellfun does this) of the cell array {TS1}, if 'alpha' then 1 otherwise 0. Then we need to convert to a matrix, which is a vector in this case. If you wish to sum the ones in the vector you might want to convert it to "double", it is logical now.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!