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?

1 回表示 (過去 30 日間)
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 件のコメント
Thorsten
Thorsten 2015 年 7 月 7 日
Or
sum(double(St) == double('1'))
or
numel(findstr(St, '1'))
Steven Lord
Steven Lord 2015 年 7 月 7 日
Or, with no arithmetic (besides NNZ's counting):
nnz(str == '1')

サインインしてコメントする。

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2015 年 7 月 7 日
編集済み: Azzi Abdelmalek 2015 年 7 月 7 日
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 件)

Debarati Banerjee
Debarati Banerjee 2015 年 7 月 7 日
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

カテゴリ

Help Center および File ExchangeStartup and Shutdown についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by