如何计算矩阵的对数但忽略等于0的值

use*_*460 2 matlab

我有一个矩阵A 3x3,它的某些元素等于0。我想计算log(A)。但是我们知道对数(0)无法识别。因此,我想计算忽略元素等于0的矩阵A的对数。如果元素等于0,则要设置log(0)= 0。如何在Matlab中实现它。谢谢大家 范例:

A=[3 2 3
   3 0 2
   4 5 0]
Log(A)=[    1.0986    0.6931    1.0986
            1.0986      0       0.6931
            1.3863    1.6094         0]
Run Code Online (Sandbox Code Playgroud)

use*_*828 5

首先将A的元素0设置为1:

log(A+(A==0))
Run Code Online (Sandbox Code Playgroud)