필터 지우기
필터 지우기

Replacing non-alphabetic characters with numbers?

조회 수: 2 (최근 30일)
Andrew
Andrew 2015년 1월 22일
답변: Matz Johansson Bergström 2015년 1월 22일
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.

채택된 답변

Azzi Abdelmalek
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)

추가 답변 (1개)

Matz Johansson Bergström
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.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by