我有这样的矢量:
>> v = [1 1 1 2 2 3 4 4 4 4 4 5 5]'
v =
1
1
1
2
2
3
4
4
4
4
4
5
5
对矢量进行排序。每个值可以有任意数量。我需要找到每个值的最后一次出现的索引。在这种情况下,它会返回:
answer =
3 % index of the last occurence of "1"
5 % index of the last occurence of "2"
6 % index of the last occurence of "3"
11 % index of the last occurence of "4"
13 % index of the last occurence of "5"
答案 0 :(得分:5)
感谢@trumpetlicks,答案是unique
。
>> v = [1 1 1 2 2 3 4 4 4 4 4 5 5 6]'
v =
1
1
1
2
2
3
4
4
4
4
4
5
5
6
>> [~, answer] = unique(v)
answer =
3
5
6
11
13
14
[编辑]
在更多的MCR版本(R2013?)中,unique
的行为发生了变化。要获得相同的结果,您必须使用unique(v, 'legacy');
答案 1 :(得分:5)
v = [1 1 1 2 2 3 4 4 4 4 4 5 5];
find(v==1,1,'last')
% returns ans = 3
find(v==2,1,'last')
% returns ans = 5
1表示您要返回的出现次数,并且可以指定'first'
或'last'
答案 2 :(得分:1)
试试这个
[find(diff(v')) length(v)]
你应该能够自己搞清楚。