how to check negative values are there or not in a matrix????
261 views (last 30 days)
Show older comments
i have a matrix a=[0.2 0.1 -0.1 0 0.9], now i want to check whether there is any negative value if yes then those element i want to make zero.
plz plz help me....
a<0 makes all greater than as 1 and other 0. but i want to make only negative values zero and other as same as they are.
2 Comments
Dyuman Joshi
on 25 Dec 2023
An approach to show off (lol) -
a=[0.2 0.1 -0.1 0 0.9]
max(a, 0)
Accepted Answer
Mischa Kim
on 11 Jun 2014
suchismita, use
a(a<0) = 0;
3 Comments
juveria fatima
on 24 Sep 2018
@ misha kim after making the negative integer to zero in matrix i want to get back to the a as originally with negative integers ,how do i do it?
KEYUR BORAD
on 25 Feb 2021
Thanks @Mischa Kim this syntax helped me to find if a vector contains both neg and pos value or not!!
More Answers (2)
Thomas Richner
on 9 Sep 2018
If you want to know if a matrix contains any negatives (but not to replace them) the use
contains_negative = any(a<0); % returns true or false
0 Comments
Anirban Naskar
on 11 Jun 2014
Edited: Anirban Naskar
on 11 Jun 2014
Hi Suchismita,
You can use something like the following:
[m n]=size(a);
for i=1:m
for j=1:n
if a(i,j)<0
disp('contains negative element');
a(i,j)=0;
end
end
end
2 Comments
juveria fatima
on 24 Sep 2018
@ Anirban nasker you are converting the negative number in matrix to positive perfectly fine
but in my case i have i have to first convert negative to postive and again i have to get back to original 'a matrix' can any help in writing the reverse function for it
See Also
Categories
Find more on Resizing and Reshaping Matrices 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!