【发布时间】:2020-01-18 20:26:01
【问题描述】:
我知道有 log 和 log2 的 MATLAB 函数,对于矩阵对数有 logm。但我想知道如何计算以 2 为底的矩阵对数?
【问题讨论】:
标签: matlab matrix logarithm exponential natural-logarithm
我知道有 log 和 log2 的 MATLAB 函数,对于矩阵对数有 logm。但我想知道如何计算以 2 为底的矩阵对数?
【问题讨论】:
标签: matlab matrix logarithm exponential natural-logarithm
只是换个底数来转换对数的底,你可以使用logm,如下:
log2m=logm(M) ./ log(2);
【讨论】:
对于标量 x,
log2(x) = log(x)/log(2)
我看不出为什么这不适用于矩阵对数:logm(m)/log(2)。
例如,让我们从this example on Wikipedia中取出矩阵:
issimilar = @(x,y) all( abs(x(:)-y(:)) < 1e-14 );
m = [1.25, 0.75; 0.75, 1.25];
issimilar( exp(1)^logm(m), m ) % returns true
issimilar( 2^(logm(m)/log(2)), m ) % also returns true
【讨论】: