How I can extract data from a vector based on index

I have an index and a vector I would like to have data from the vector which is not in the index!For example
A=[5 3 7 8 89 6]
index=[2 3 4 5]
Now I want to have B as my answer B=[5 6] Thanks!

 採用された回答

Roger Stafford
Roger Stafford 2016 年 6 月 3 日
編集済み: Roger Stafford 2016 年 6 月 3 日

1 投票

B = A(setdiff((1:length(A)).,index(:)));
or if you're sure A and index are row vectors just
B = A(setdiff(1:length(A),index));

その他の回答 (2 件)

Stephen23
Stephen23 2022 年 4 月 11 日

1 投票

A simple and efficient approach:
A = [5,3,7,8,89,6];
index = [2,3,4,5];
B = A;
B(index) = []
B = 1×2
5 6
Johanna
Johanna 2022 年 2 月 21 日

0 投票

I looking for the opposite command of setdiff. That is, taking the example from above, I want the answer to be B=[3 7 8 89].
In particular I'm actually looking for the mean of the values mentioned in my index vector. I tried mean(A(index)), however, this does not work.
I guess it has to be something like mean(A(setequal(1:length(A),index))), however, setequal does not exist. Thanks!

2 件のコメント

Stephen23
Stephen23 2022 年 2 月 21 日
" I want the answer to be B=[3 7 8 89]."
A = [5,3,7,8,89,6];
index = [2,3,4,5];
B = A(index)
B = 1×4
3 7 8 89
Janiece Jackson
Janiece Jackson 2022 年 4 月 11 日
Thank you so much for this answer!!!

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

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

タグ

質問済み:

2016 年 6 月 3 日

回答済み:

2022 年 4 月 11 日

Community Treasure Hunt

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

Start Hunting!

Translated by