How to make all negative values in a matrix 0?

42 views (last 30 days)
Pleuni Kirch
Pleuni Kirch on 18 Nov 2020
Edited: cr on 19 Nov 2020
for i= 1: size(A,1)
if A (i, 2) <= 0
DataNew(i,2) = 0
This is what I have now, but there are still negative values in my DataNew matrix
  1 Comment
Pleuni Kirch
Pleuni Kirch on 18 Nov 2020
I am sorry I dont know how to change my question, but I only want to make the negative values of a certain column 0. Not all negative values in the matrix

Sign in to comment.

Accepted Answer

cr
cr on 18 Nov 2020
Edited: cr on 19 Nov 2020
%% Set all negative elements to 0
A(A<0) = 0;
%% Set second column elements to 0
col = 2;
a(a(:,col)<0,col) = 0;

More Answers (2)

Walter Roberson
Walter Roberson on 18 Nov 2020
A(:, 2) = max(0, A(:, 2))

Andrew Flewellen-Gore
Andrew Flewellen-Gore on 18 Nov 2020
To set set negative values in a certain column of matrix "A" to 0, you can do this:
For this example we assume A is a 2-D number matrix and that we are getting rid of negative values in the 2nd column.
>>A(:,2) = max( A(:,2), 0 )
This line of code replaces each negative number in the second collumn with 0. Each positive number in the second collumn will stay the same.

Community Treasure Hunt

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

Start Hunting!