How to remove zeros from an array????

I have a array as
a=1:20
Columns 1 through 15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Columns 16 through 20
16 17 18 19 20
and another array as
y =
1 2 3 13 15 16 17 19 20
then i want to find the elements of y which are not in a so
b=~ismember(a,y);
b1=bsxfun(@times,a,b)
b1 =
Columns 1 through 15
0 0 0 4 5 6 7 8 9 10 11 12 0 14 0
Columns 16 through 20
0 0 18 0 0
now i want to remove the 0's finally i want a matrix x
x=
4 5 6 7 8 9 10 11 12 14 18
please help me...
thank you

 採用された回答

Stephen23
Stephen23 2016 年 2 月 22 日
編集済み: Stephen23 2016 年 2 月 22 日

1 投票

Simply use logical indexing directly on a (those b variables are not required):
>> a(~ismember(a,y))
ans =
4 5 6 7 8 9 10 11 12 14 18
or the simplest solution is to use setdiff:
>> setdiff(a,y)
ans =
4 5 6 7 8 9 10 11 12 14 18

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeResizing and Reshaping Matrices についてさらに検索

質問済み:

2016 年 2 月 22 日

編集済み:

2016 年 2 月 22 日

Community Treasure Hunt

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

Start Hunting!

Translated by