How to remove zeros from an array????

2 ビュー (過去 30 日間)
suchismita
suchismita 2016 年 2 月 22 日
編集済み: Stephen23 2016 年 2 月 22 日
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 日
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 件)

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by