Hi!
I have a vector with a lot of numbers, for example, A = [9,1,2,5,1,2,5,1,1,5,2,3,1,2,5,1,2,5,4,1,2,5,10]; and I want to remove all the values that are different from 1,2,5,9 or 10. In this case I would want to remove 3 and 4 so A would be
A = [9,1,2,5,1,2,5,1,1,5,2,1,2,5,1,2,5,1,2,5,10];
(I want to apply this to a vector with hundreds of values so I cannot remove that separately, I probably need do do a cycle but its not working)
How can I do this easily?

 採用された回答

DGM
DGM 2021 年 4 月 13 日
編集済み: DGM 2021 年 4 月 13 日

1 投票

Something like this:
A = [9,1,2,5,1,2,5,1,1,5,2,3,1,2,5,1,2,5,4,1,2,5,10] % input
x = [1,2,5,9,10]; % values to keep
B = A(ismember(A,x))

4 件のコメント

Adam Danz
Adam Danz 2021 年 4 月 13 日
Also see ismembertol if you're working with floating point values.
Ana Gabriela Guedes
Ana Gabriela Guedes 2021 年 4 月 14 日
Thank you!!
Ana Gabriela Guedes
Ana Gabriela Guedes 2021 年 4 月 14 日
If I have a C vector that corresponds to A and want to remove the correspondents elements in C how can I do it?
So if I have A = [9,1,5,2,3,2] and C = [12,23,41,4,10,6] (for example)
I'll do as you said:
x = [1,2,5,9,]; % values to keep
B = A(ismember(A,x)) % B = [9,1,5,2,2]
and need to end up with an C = [12,23,41,4,6]
How can I remove in C the element that corresponds to the 3 in A?
Adam Danz
Adam Danz 2021 年 4 月 14 日
ismember(A,x) returns a logical index. Use that logical index to remove (or keep) values in both A and B.

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

その他の回答 (0 件)

カテゴリ

質問済み:

2021 年 4 月 13 日

コメント済み:

2021 年 4 月 14 日

Community Treasure Hunt

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

Start Hunting!

Translated by