我想用以下元素创建矩阵 A[i,j,k]:
A[i,j,k] = 0 如果 k+jsi =/= 0
A[i,j,k] = p[s] if k+jsi =0 ( p[s] 是给定向量)
这可以由特征函数写为 p[s]*ð(k+jsi) 或由克罗内克三角函数写为 p[s]*ð(0,k+jsi)。R中是否有任何“内置”功能可以提供 - 我的意思是内置“ð”?
还是我必须自己写?
我想构建函数会非常有用,该函数在 f(x)=0 时返回 1,否则返回 0,至少对于线性 f(x)
我想用以下元素创建矩阵 A[i,j,k]:
A[i,j,k] = 0 如果 k+jsi =/= 0
A[i,j,k] = p[s] if k+jsi =0 ( p[s] 是给定向量)
这可以由特征函数写为 p[s]*ð(k+jsi) 或由克罗内克三角函数写为 p[s]*ð(0,k+jsi)。R中是否有任何“内置”功能可以提供 - 我的意思是内置“ð”?
还是我必须自己写?
我想构建函数会非常有用,该函数在 f(x)=0 时返回 1,否则返回 0,至少对于线性 f(x)
我会将其重写为
A[i,j,k] = p[k+j-i] if that exists, otherwise 0
然后可以将其实现为
p <- c(1,2,3,4,5)
pfun <- function(x) {
if (x < 1 | x > length(p)) {
0
} else {
p[x]
}
}
n <- 5
A <- array(0, c(n, n, n))
for (i in 1:n) {
for (j in 1:n) {
for (k in 1:n) {
A[i,j,k] <- pfun(k+j-i)
}
}
}
可能有比三重嵌套 for 循环更优雅的东西。
至于你问的功能,很简单
as.numeric(f(x)==0)
会工作。