How to make a log operation for a matrix excluding the '-inf' values?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello everyone!
I want to do it a log operation in a matrix and I developed the following loop:
for ii = 1: size (IDHMA,1)
for kk = size (IDHMA,2)
IDHMAlog (ii,kk) = log(IDHMA(ii,kk))
if IDHMA(ii,kk) == 0
IDHMAlog(ii,kk) = NaN %exclude the"-Inf" values
else
IDHMAlog (ii,kk) = log(IDHMA(ii,kk))
end
end
end
But the result is giving me a matrix in the same dimension but with zeros and the the log operation result only in the last column. Does anyone know how to fix it ?
Thanks
0 commentaires
Réponse acceptée
Tommy
le 2 Juin 2020
k should span from 1 to size(IDHMA,2), similar to ii:
for ii = 1: size (IDHMA,1)
for kk = 1 : size (IDHMA,2)
IDHMAlog (ii,kk) = log(IDHMA(ii,kk))
if IDHMA(ii,kk) == 0
IDHMAlog(ii,kk) = NaN %exclude the"-Inf" values
else
IDHMAlog (ii,kk) = log(IDHMA(ii,kk))
end
end
end
I believe you could avoid the loops if you'd like:
IDHMAlog = log(IDHMA);
IDHMAlog(IDHMA==0) = NaN;
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!