I have a string S='010101' I need to take each element from the string and check whether it 1,if it is one then the count is incremented by one in matlab?

I have a string S='010101' I need to take each element from the string and check whether it 1,if it is one then the count is incremented by one in matlab?
I have used the following code,but the value of count is not changing.
St='010101';
count=0;
a=0;
for i=1:6
a=St(i);
if(a==1)
count=count+1;
end
end

댓글 수: 3

Don't use a loop for this, when vectorized code is much neater and faster:
str = '010101';
cumsum(str-'0')
nnz(str-'0')
Or
sum(double(St) == double('1'))
or
numel(findstr(St, '1'))
Or, with no arithmetic (besides NNZ's counting):
nnz(str == '1')

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

 채택된 답변

S='010101'
out=nnz(S-'0')
To correct your for loop
St='010101';
count=0;
a=0;
for i=1:6
a=St(i);
if(a=='1')
count=count+1;
end
end

추가 답변 (1개)

This seems to work:
St='010101';
count=0;
a=0;
for i=1:6
a=St(1,i);
if(str2num(a)==1)
count=count+1;
end
end

카테고리

도움말 센터File Exchange에서 MATLAB Coder에 대해 자세히 알아보기

질문:

2015년 7월 7일

댓글:

2015년 7월 7일

Community Treasure Hunt

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

Start Hunting!

Translated by