作业帮 > 综合 > 作业

使用MATLAB统计数列中数字出现的次数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 03:15:16
使用MATLAB统计数列中数字出现的次数
例如有一串数列0100010110...要用MATLAB统计其中00、01、10、11出现的次数,怎么用正则表达式实现?详细说明的,
问你下,是从数列的开始划分,像01,00,0,.,还是只要是相邻的都算,一会给你编~
再问: 只要是相邻的都算,例如010110在统计的时候就是00:0次,01:2次,10:2次,11:1次,不局限于使用正则表达式,谢谢你了~
再答: 这个代码写好了,有疑问可以继续问: syms a b; c='abaababababb';%此处可令a=0,b=1; x=[0,0;0,0]; % x(1,1)是aa出现的次数,x(1,2)是ab出现的次数 % x(2,1)是ba出现的次数,x(2,2)是bb出现的次数 n=length(c); for i=1:n-1 if c(i)=='a' if c(i+1)=='a' x(1,1)=x(1,1)+1; else x(1,2)=x(1,2)+1; end end if c(i)=='b' if c(i+1)=='a' x(2,1)=x(2,1)+1; else x(2,2)=x(2,2)+1; end end end x 计算结果 x = 1 5 4 1 与给定的刚好满足,你如果需要算其他的可以放到变量C中就可以计算了!希望对你有帮助!
再问: 恩可以的,但是如果我的数列(就是你设的变量c)是从txt文件中导出的,要怎么修改呢?
再答: 你读入txt文档放入C中 文档名为:新建文本文档 (3) 里面内容为:ababababababbaaaabbb 放入可执行文件中,比如work文件夹 代码为: syms a b; %c='abaababababb';%此处可令a=0,b=1; loadc=importdata('新建文本文档 (3).txt'); c=loadc{1}; x=[0,0;0,0]; % x(1,1)是aa出现的次数,x(1,2)是ab出现的次数 % x(2,1)是ba出现的次数,x(2,2)是bb出现的次数 n=length(c); for i=1:n-1 if c(i)=='a' if c(i+1)=='a' x(1,1)=x(1,1)+1; else x(1,2)=x(1,2)+1; end end if c(i)=='b' if c(i+1)=='a' x(2,1)=x(2,1)+1; else x(2,2)=x(2,2)+1; end end end x 运行结果: x = 3 7 6 3 直接加我QQ 我的名字就是!