24小时热门版块排行榜    

查看: 154  |  回复: 2
当前主题已经存档。

einboplure

银虫 (小有名气)

[交流] 再次求助于 fspdlh【问题解决】

感谢你给我问题的解答。我还有一个问题,如果一个任意的0、1序列,如01110011010111010101,如何计算序列中各个聚集数的个数。如三个1聚在一起的有2个,两个1聚在一起的有1个,一个1聚在一起的有4个。谢谢你啊!

[ Last edited by woshilsh on 2008-12-15 at 15:33 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

★ ★ ★ ★
kuhailangyu(金币+4,VIP+0):你的解答得到楼主认可,重奖回复能直接帮助解决问题者!
function y=fun(input_number,flag)
%flag:  无、1         2        3
%       字符串   十进制数  二进制数
if nargin==1,   flag=1;     end
switch flag
    case 1
        str=input_number;
    case 2
        str=dec2bin(input_number);
    case 3
        str=int2str(input_number);
end
len=length(str);
y=zeros(1,len);
str=cat(2,'0',str,'0');
for i=2:length(str)
    if str(i-1)=='0' && str(i)=='1'
        start_index=i;  
    elseif str(i-1)=='1' && str(i)=='0'
        end_index=i;
        y(end_index-start_index)=y(end_index-start_index)+1;
    end
end
y=[-1,sum(y);find(y~=0)',y(y~=0)'];
   

>> fun('011101111111011010111010101')

ans =

    -1     8
     1     4
     2     1
     3     2
     7     1
第一行为总和
2楼2008-12-14 15:17:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

einboplure

银虫 (小有名气)

太感谢你了。向你致敬!
3楼2008-12-15 00:52:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 einboplure 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见