gpt4 book ai didi

Matlab log(1) 并不总是零

转载 作者:太空宇宙 更新时间:2023-11-03 19:42:48 26 4
gpt4 key购买 nike

我正在开发用于对象检测的图像处理应用程序。

在某些时候,我正在使用两个方协方差矩阵的广义特征值向量的对数。假设我有一个 9x9 的协方差矩阵 a。

a = rand(9, 9)%just generating random matrix for testing problem easily

b = eig(a, a)%generalized eigenvalues vector containing nine values equal to 1
%so we have b = [1.000, 1.000, 1.000 ... (9 times)]

c = log(b(:)) %we know b contains values of 1. and log(1) is 0.

即使我们知道并且可以调试看到 b 包含值为 1 且 log(1) 为 0 的元素,但 c 的内容是:

1.0e-014 *

0.0222
0.1110
0.0222
0.0222
-0.0777
0
0.0222
0.0888
0

这就是我的情况。任何人都知道为什么 c 的值不为 0?谢谢。

最佳答案

正如@OliCharlesworth 评论的那样,b 的值实际上不是 1。我做了与您完全相同的操作,并得到了 b 的以下内容:

b =

1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000

但是当我在变量资源管理器中打开 b 时,我得到了以下信息:

Ya only one true one

您会看到实际上只有一个 1 值,而不是 1.000,这意味着有一些未在 MatLab 中显示的尾随值。因此,对于 c,您将得到以下内容:

c =

1.0e-15 *

0.2220
-0.4441
0.2220
-0.2220
0.2220
0
0.2220
-0.1110
-0.1110

请注意 1.0e-15,这是查找尾随值的地方。

关于Matlab log(1) 并不总是零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16821192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com