获取向量更改值的索引位置

时间:2014-04-14 12:27:00

标签: matlab

我有一个包含已排序字符串列表的向量。我想知道向量变化的索引号。以下是一个明显的例子。我真的不太习惯使用MATLAB。在我的脑海里,我只是想着使用一个循环。我想知道是否有更好的方法使用MATLAB做到这一点?

 Vector
 ABC
 ABC
 ABC
 ABC
 MNK
 MNK
 MNK
 PLO
 PLO

所以我想知道ABC是1:4,MNK是5:7&巴解组织是从8:9

1 个答案:

答案 0 :(得分:5)

一种方法 -

%%// Input
a1 = {
    'ABC'
    'ABC'
    'ABC'
    'ABC'
    'MNK'
    'MNK'
    'MNK'
    'PLO'
    'PLO'};

[val,x2] = unique(a1,'first');
[~,x12] = unique(a1); %%// By default takes the last unique value
out = [val num2cell(x2) num2cell(x12)]

输出 -

out = 

    'ABC'    [1]    [4]
    'MNK'    [5]    [7]
    'PLO'    [8]    [9]