Change the sign of a particular element in a matrix
Mostrar comentarios más antiguos
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!
Respuesta aceptada
Más respuestas (1)
Image Analyst
el 28 de Dic. de 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 comentarios
Shaun VanWeelden
el 28 de Dic. de 2012
Image Analyst, your always so thorough in your answers, I love it
Jan
el 28 de Dic. de 2012
@Shaun: You can vote this answer, if you find it useful.
Categorías
Más información sobre Matrix Indexing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!