【发布时间】:2021-10-04 12:05:36
【问题描述】:
考虑以下矩阵 A 和 B。
> A
[,1] [,2] [,3]
[1,] 76.66894 76.46920 76.38535
[2,] 76.66894 76.48072 76.40349
[3,] 76.66894 76.56698 77.22777
[4,] 76.66894 76.46920 76.38535
[5,] 76.66894 76.48072 76.40349
[6,] 76.66894 76.56698 77.22777
[7,] 76.66894 76.46920 76.38535
[8,] 76.66894 76.48072 76.40349
[9,] 76.66894 76.56698 77.22777
> B
[,1] [,2] [,3]
[1,] 0.1111111 0.1111111 0.1111111
[2,] 0.1111111 0.1111111 0.1111111
[3,] 0.1111111 0.1111111 0.1111111
[4,] 0.1111111 0.1111111 0.1111111
[5,] 0.1111112 0.1111112 0.1111112
[6,] 0.1111111 0.1111111 0.1111111
[7,] 0.1111111 0.1111111 0.1111111
[8,] 0.1111111 0.1111111 0.1111111
[9,] 0.1111111 0.1111111 0.1111111
我想对 A 和 B 进行元素乘法,我希望在第一列中,除了第 5 列之外的所有结果都是相同的,因为它将乘以稍高的数字。但是,我得到以下结果:
C <- A*B
> C
[,1] [,2] [,3]
[1,] 8.518769 8.496576 8.487259
[2,] 8.518772 8.497859 8.489277
[3,] 8.518769 8.507440 8.580862
[4,] 8.518772 8.496579 8.487262
[5,] 8.518775 8.497861 8.489280
[6,] 8.518772 8.507443 8.580865
[7,] 8.518769 8.496576 8.487259
[8,] 8.518772 8.497859 8.489277
[9,] 8.518769 8.507440 8.580862
即使乘以相同的值,我得到的值也略有不同。为什么会这样?
【问题讨论】:
-
你可以试试
print(C, digits = 16)。原始值必须有更多差异,因为这些是浮点数
标签: r matrix matrix-multiplication