# Change the sign of a particular element in a matrix

12 views (last 30 days)
Pranjal Pathak on 28 Dec 2012
Hi, I have a problem in the following matrix: A=[ -1 1 0 0 0 0; 0 -1 1 0 0 0 ; 0 0 -1 1 0 0; 0 0 0 0 -1 1 ; 0 0 0 0 0 -1 ; 0 0 0 0 0 0];
In the above matrix, I need to change only the element -1 by +1, while others remaining the same. For, small matrix, it is possible by defining the row and column elements but for large matrix, is there any way of doing it programatically in matlab as the dimension of the matrix may be larger than this. Please help me in this regard.
Thanking You!

Muruganandham Subramanian on 28 Dec 2012
Edited: Jan on 28 Dec 2012
find(A==-1)=1
[EDITED, Jan, copied from comments] Better: A(A==-1)=1;
or
A=abs(A)
Pranjal Pathak on 9 Jan 2013
Thanks for the answer,it worked out!

### More Answers (1)

Image Analyst on 28 Dec 2012
What do you mean change it by +1? Do you mean change it TO +1, or change it by +1 by adding +1 to the -1 so that you get 0? Here's three different ways to do the two possible meanings of your question:
A = [ -1 1 0 0 0 0; 0 -1 1 0 0 0 ; 0 0 -1 1 0 0; 0 0 0 0 -1 1 ; 0 0 0 0 0 -1 ; 0 0 0 0 0 0]
A(A == -1) = 1
A = [ -1 1 0 0 0 0; 0 -1 1 0 0 0 ; 0 0 -1 1 0 0; 0 0 0 0 -1 1 ; 0 0 0 0 0 -1 ; 0 0 0 0 0 0]
A(A == -1) = 0
A = [ -1 1 0 0 0 0; 0 -1 1 0 0 0 ; 0 0 -1 1 0 0; 0 0 0 0 -1 1 ; 0 0 0 0 0 -1 ; 0 0 0 0 0 0]
elementsToChange = A == -1;
A(elementsToChange) = A(elementsToChange) + 1
##### 2 CommentsShow 1 older commentHide 1 older comment
Jan on 28 Dec 2012
@Shaun: You can vote this answer, if you find it useful.

### 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!

Translated by