2013-08-02 492 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