non zero elements in an array
3 views (last 30 days)
Show older comments
if a=[1 2 4 5 3 0 0 8 0]
how can i make the elements greater than or equal to 2 as 1 and smaller than two as 0.
so that it become like this:
[0 1 1 1 1 0 0 1 0]
0 Comments
Accepted Answer
Arif Hoq
on 12 Feb 2022
a=[1 2 4 5 3 0 0 8 0];
[idx]=find(a<2);
a(idx)=0;
out=a;
[idx2]=find(out>=2);
out(idx2)=1
More Answers (2)
DGM
on 12 Feb 2022
Edited: DGM
on 12 Feb 2022
I'm going to assume you're only dealing in integers here, otherwise the question arises whether values between 1 and 2 should really be preserved.
a = [1.5 1 2 4 5 3 0 0 8 0];
b = max(min(a,1),0)
If values between 1 and 2 should be preserved, then:
c = max(a,0);
c(c>=2) = 1
0 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!