2013-08-02 273 views
0

寻找变化点如果我有一个单元阵列Matlab的:在单元阵列

CELLS = {'AB','AB','AB','BC','BC','CD','CD','CD','DF','FG'} 

如何找到位置的索引处的元素改变?

在这个例子中,我正在寻找类似的输出:

CHANGES = 
     4 
     6 
     9 
     10 

回答

3

对于字符串呼叫unique()的通用单元阵列,以及find(diff(...))位置index:

s = {'AB','AB','AB','BC','BC','CD','CD','CD','DF','FG'}; 
[~,~,p] = unique(s) 
find(diff(p)==1)+1 
2

这样做:

CHANGES = find(diff(cell2mat(CELLS)))+1

+0

我意外地过度介绍请问我的问题有点:如果'CELLS = {'AB','AB','AB','BC','BC','CD','CD','CD','DF','FG “}'? – siegel