Replacing numbers in a row

Dear all,
I have a question, I want to try to replace values in a row that are greater than zero. For example, I have the array A that is:
A = [ 0 0 3 5 6 4 0 0 0 3 0 0 3 2 0].
What I want is to replace all values greater than 0 by 1.I know I can use A(A>0)=1 but I don't want to replace the individual 3 by 1 instead I want it to be zero.
I want my result to be:
A = [ 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0]....instead of A = [ 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0].
Is there any way I can do this and specify what individual number I don't want to replace by 1??
Thank You!!

6 Comments

Looks like you're still replacing the first 3. Is that correct?
So, can you tell us the explicit rule(s) for the replacement instead of us having to guess at it?
I guess you are looking for a pattern like in A, '0 3 0', you would like to replace this '3' by '0' also.
I Bosong Lin is right...The number 3 that stands alone in 0 3 0 pattern..I would like to replace by 0 otherwise it would be 1 like the rest of the values
So is it just the 3 that stand alone that are not to be replaced, or any number that stand alone?
Just the 3 that stands alone

Sign in to comment.

 Accepted Answer

Matt J
Matt J on 18 Apr 2018
Edited: Matt J on 18 Apr 2018

Just the 3 that stands alone

result = strrep(A,[0,3,0],[0,0,0])>0;

More Answers (1)

Asked:

on 17 Apr 2018

Commented:

on 19 Apr 2018

Community Treasure Hunt

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

Start Hunting!