finding Missing elements in a vector

4 ビュー (過去 30 日間)
Raghavendra Reddy P
Raghavendra Reddy P 2015 年 5 月 26 日
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.

採用された回答

Luca Amerio
Luca Amerio 2015 年 5 月 26 日
This will do the trick
P(~(P==1:length(P)))
just for clarification
P==1:length(P)
returns a logical array of the position occupied by the right number.
~(P==1:length(P))
is the logical array of the position occupied by the WRONG number
P(~(P==1:length(P)))
get the values in those positions.
  5 件のコメント
Andrei Bobrov
Andrei Bobrov 2015 年 5 月 26 日
P(P(:)'~=1:length(P))
Raghavendra Reddy P
Raghavendra Reddy P 2015 年 5 月 26 日
Thank you sir

サインインしてコメントする。

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2015 年 5 月 26 日
out = P([1;diff(P)] < 0);
  5 件のコメント
Andrei Bobrov
Andrei Bobrov 2015 年 5 月 26 日
P(strfind([P(1);diff(P(:))]' ~= 1,[1 1]))
Raghavendra Reddy P
Raghavendra Reddy P 2015 年 5 月 26 日
Thank you

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by