how to check negative values are there or not in a matrix????

266 次查看(过去 30 天)
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 个评论
Dyuman Joshi
Dyuman Joshi 2023-12-25
An approach to show off (lol) -
a=[0.2 0.1 -0.1 0 0.9]
a = 1×5
0.2000 0.1000 -0.1000 0 0.9000
max(a, 0)
ans = 1×5
0.2000 0.1000 0 0 0.9000

请先登录,再进行评论。

采纳的回答

Mischa Kim
Mischa Kim 2014-6-11
suchismita, use
a(a<0) = 0;
  3 个评论
juveria fatima
juveria fatima 2018-9-24
@ 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
KEYUR BORAD 2021-2-25
Thanks @Mischa Kim this syntax helped me to find if a vector contains both neg and pos value or not!!

请先登录,再进行评论。

更多回答(2 个)

Thomas Richner
Thomas Richner 2018-9-9
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

Anirban Naskar
Anirban Naskar 2014-6-11
编辑:Anirban Naskar 2014-6-11
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 个评论
juveria fatima
juveria fatima 2018-9-24
@ 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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by