带条件的产品的数学抽象
math abstraction of out product with condition
我有两个数组要比较。比较 b 中的标签 True/False :
a=c(2.9,3.7,3.8, 2.7,3.3, 3.9) and b=c(18,21, 30 ,21, 17, 27)
我用
compare=outer(a,a,'>=') & outer(b,b,'>=') # Return True if a[1]>=a[2] and b[1]>=b[2], etc
获取布尔矩阵:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] TRUE FALSE FALSE FALSE FALSE FALSE
[2,] TRUE TRUE FALSE TRUE TRUE FALSE
[3,] TRUE TRUE TRUE TRUE TRUE FALSE
[4,] FALSE FALSE FALSE TRUE FALSE FALSE
[5,] FALSE FALSE FALSE FALSE TRUE FALSE
[6,] TRUE TRUE FALSE TRUE TRUE TRUE
如何将这个比较过程写成数学方式。是out品 像ab吗?
因为我假设 OP 想知道他的 R 代码的正确数学表达式,所以我认为这不是真正的 R 问题。
我给你一些 Latex 代码。假设 c_{ij}
表示 compare
矩阵的元素。然后你可以使用指标函数
http://en.wikipedia.org/wiki/Indicator_function
将您的代码翻译成数学表达式
c_{ij}=\textbf{1}_{\left[0,\infty\right)}(a_i-a_j) \cdot \textbf{1}_{\left[0,\infty\right)}(b_i-b_j)
在这种情况下,c_{ij}
将保存 0
和 1
而不是 FALSE
和 TRUE
。
这里很难回答这个问题,因为 Stack Overflow 不支持 LaTeX 数学模式。但是...
您需要的是 Heaviside Step 函数,通常用大写 Theta 表示。
http://en.wikipedia.org/wiki/Heaviside_step_function
Theta(x) 是 Dirac Delta 函数从负无穷大到 x 的积分。因此,对于 x<0,Theta(x) = 0,对于 x >= 0,Theta(x) = 1。
你得到了向量 a 和 b。你想要矩阵 C。在索引符号中:
C_{i j} = \Theta(a_i - a_j) \times \Theta(b_i - b_j)
C 变成了 1 和 0 的矩阵。
我有两个数组要比较。比较 b 中的标签 True/False :
a=c(2.9,3.7,3.8, 2.7,3.3, 3.9) and b=c(18,21, 30 ,21, 17, 27)
我用
compare=outer(a,a,'>=') & outer(b,b,'>=') # Return True if a[1]>=a[2] and b[1]>=b[2], etc
获取布尔矩阵:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] TRUE FALSE FALSE FALSE FALSE FALSE
[2,] TRUE TRUE FALSE TRUE TRUE FALSE
[3,] TRUE TRUE TRUE TRUE TRUE FALSE
[4,] FALSE FALSE FALSE TRUE FALSE FALSE
[5,] FALSE FALSE FALSE FALSE TRUE FALSE
[6,] TRUE TRUE FALSE TRUE TRUE TRUE
如何将这个比较过程写成数学方式。是out品 像a
因为我假设 OP 想知道他的 R 代码的正确数学表达式,所以我认为这不是真正的 R 问题。
我给你一些 Latex 代码。假设 c_{ij}
表示 compare
矩阵的元素。然后你可以使用指标函数
http://en.wikipedia.org/wiki/Indicator_function
将您的代码翻译成数学表达式
c_{ij}=\textbf{1}_{\left[0,\infty\right)}(a_i-a_j) \cdot \textbf{1}_{\left[0,\infty\right)}(b_i-b_j)
在这种情况下,c_{ij}
将保存 0
和 1
而不是 FALSE
和 TRUE
。
这里很难回答这个问题,因为 Stack Overflow 不支持 LaTeX 数学模式。但是...
您需要的是 Heaviside Step 函数,通常用大写 Theta 表示。 http://en.wikipedia.org/wiki/Heaviside_step_function
Theta(x) 是 Dirac Delta 函数从负无穷大到 x 的积分。因此,对于 x<0,Theta(x) = 0,对于 x >= 0,Theta(x) = 1。
你得到了向量 a 和 b。你想要矩阵 C。在索引符号中:
C_{i j} = \Theta(a_i - a_j) \times \Theta(b_i - b_j)
C 变成了 1 和 0 的矩阵。