如何用r语言求哈达马乘积

Python013

如何用r语言求哈达马乘积,第1张

r语言中计算哈达乘积(Hadamard product),和计算一般矩阵与矩阵的乘积一样,直接用m×n即可。

如matrix(c(1:8),2)*matrix(c(8:1),2)

> matrix(c(1:8),2)

[,1] [,2] [,3] [,4]

[1,]1357

[2,]2468

>matrix(c(8:1),2)

[,1] [,2] [,3] [,4]

[1,]8642

[2,]7531

> matrix(c(1:8),2)*matrix(c(8:1),2)

[,1] [,2] [,3] [,4]

[1,]8 18 20 14

[2,] 14 20 188

这是考虑了交换律的结果,即a+b和b+a算同一种规则

算术求和规则只考虑个位数,类似于乘法口诀

对于R进制,个位数是从0-(R-1)

对于a+b只考虑a<=b的情况

那么b=k时 就有a 有k k-1, k-2 ... 0 共计k+1种情况

对于b∈[0,R-1]

分别有1,2,3,...R-1, R种情况

总数1+2+3+...+R-1+R=R(R+1)/2

事实上是组合数学的问题:

我们需要从R个数字符号中找到两个数相加

根据加法原理:抽取规则为不分次序的两个不同数,或两个相同的数码。

于是我们有:

C(2,R)+R=R*(R-1)/2+R=R*(R+1)/2