How do I replace the zeros in a matrix with another integer, or with a pos or neg infinity?

2 visualizaciones (últimos 30 días)
I have a 145x145 distance matrix where: (1,1)=0 (2,2)=0 ... Can I replace just the diagonal with infinity values? There are other zeros in the matrix, but I may or may not want to keep those. Is there a process that could replace this diagonal of all zeros with a diagonal of all infinities?
thanx

Respuesta aceptada

Matt Fig
Matt Fig el 4 de Jun. de 2011
To replace only the diagonal of a N-by-N matrix with infinity, do:
A(1:N+1:N^2) = inf; % or A(1:N+1:end)...
If you want to replace all of the zeros in an array with infinity, do:
A(~A) = inf; % Or A(A==0) = inf;

Más respuestas (0)

Categorías

Más información sobre Operating on Diagonal Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by