finding Missing elements in a vector
Show older comments
I have a vector P =
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
19
20
21
3
23
24
6
26
27
28
29
30
31
32
As per the ascending order (1 2...15..32) of vector P, the elements 18,25,28 are missing and their position is occupied by the elements 2,3,6. now i want a vector which indicates this numbers like n=[2 3 6]. if elements are in order perfectly (1:10), I don't want new vector n.
Accepted Answer
More Answers (1)
Andrei Bobrov
on 26 May 2015
out = P([1;diff(P)] < 0);
5 Comments
Raghavendra Reddy P
on 26 May 2015
You have to convert P to a column vector
P = P(:);
out = P([1;diff(P)] < 0);
or use "," instead of ";", but this works only if P is a row vector
out = P([1,diff(P)] < 0);
Raghavendra Reddy P
on 26 May 2015
Edited: Andrei Bobrov
on 26 May 2015
Andrei Bobrov
on 26 May 2015
P(strfind([P(1);diff(P(:))]' ~= 1,[1 1]))
Raghavendra Reddy P
on 26 May 2015
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!