R语言:soft thresholding operator

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_38918949/article/details/82215495

R语言:矩阵计算

问题:已知矩阵 A 和参数 k ,希望返回矩阵 S ,使得对 S 的每个元素:

S ( a ) = { a k , a > k 0 , | a | k a + k , a < k

这里的 S 实际上是叫做soft thresholding operator,在数值计算的算法中会用到。

代码:

sto <- function(A,k){
S <- A
S[which(abs(S) <= k)] <- 0
S[which(S > k)] <- S[which(S > k)] - k
S[which(S < -k)] <- S[whichS < -k)] + k
return(S)
}

猜你喜欢

转载自blog.csdn.net/sinat_38918949/article/details/82215495