怎样实现统计一条序列​里在不同位置出现重复​元素的... 。

怎么样可以实现统计一条序列里在不同位置出现重复元素的数目,并把重复的数目存在另一个数组里。
例如:序列S=[ACGCCTACCCACCCCT],序列里出现重复的是字母C,重复次数依次是2,3,4,另一个数组就应该是这样a=[2 3 4]。求用MATLAB实现的代码!在线等。。。

 Réponse acceptée

N/A
N/A le 16 Nov 2022

0 votes

A='ACGCCTACCCACCCCT'
A=A=='C'
k=diff([0 A 0]) %对A前后补0之后再作diff,补0是为了保证如果A的第一个和最后一个元素是1的话,也能够通过diff求得1或-1,然后再根据1和-1来寻找连续1的位置和个数
ind=find(k==1)  %1出现的位置即连续1出现的位置
num=find(k==-1)-ind  %-1和1出现的位置差即连续1出现的个数
num(num==1)=[]

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!