Matlab:在单元格数组中找到变化点

时间:2013-08-02 18:18:12

标签: matlab cell-array

如果我有一个单元格数组

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

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

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

CHANGES = 
        4 
        6 
        9
        10

2 个答案:

答案 0 :(得分:3)

对于字符串调用unique()的通用单元格数组,以及find(diff(...))位置索引:

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

答案 1 :(得分:2)

这样做:

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