當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R boolmatmult-methods 布爾算術矩陣乘積:%&% 和方法


R語言 boolmatmult-methods 位於 Matrix 包(package)。

說明

對於布爾值或“模式”n” 矩陣,即R類的對象nMatrix,很自然地允許矩陣乘積使用布爾值而不是數值算術。

包裝內Matrix,我們使用二元運算符%&%(又名“infix”)函數)為此並為我們所有的矩陣和傳統矩陣提供方法R矩陣(參見matrix)。

模式矩陣,即繼承自 "nMatrix" ,或者在對角矩陣的情況下繼承 "ldiMatrix"

方法

我們為“traditional”(R基)矩陣和數值向量以及概念上所有矩陣和sparseVector包裝內有Matrix.

signature(x = "ANY", y = "ANY")
signature(x = "ANY", y = "Matrix")
signature(x = "Matrix", y = "ANY")
signature(x = "mMatrix", y = "mMatrix")
signature(x = "nMatrix", y = "nMatrix")
signature(x = "nMatrix", y = "nsparseMatrix")
signature(x = "nsparseMatrix", y = "nMatrix")
signature(x = "nsparseMatrix", y = "nsparseMatrix")
signature(x = "sparseVector", y = "mMatrix")
signature(x = "mMatrix", y = "sparseVector")
signature(x = "sparseVector", y = "sparseVector")

注意

這些布爾算術矩陣產品是 Matrix 1.2.0(2015 年 3 月)新引入的。其實施尚未經過廣泛測試。

最初,未指定非結構零點,即0是作為M@x插槽應被視為數字("dMatrix") 和邏輯 ("lMatrix") 稀疏矩陣。我們現在指定布爾矩陣乘積的行為應該就像應用於drop0(M),即,就好像在使用矩陣之前從矩陣中刪除這些零一樣。
等價地,對於所有矩陣M,布爾算術應該像應用於M != 0(或者M != FALSE)。

當前的實現最終將 xy 強製轉換為(虛擬)類 nsparseMatrix,這對於密集矩陣來說可能非常低效。未來的實現很可能返回具有不同類別的矩陣,但 “same” 內容,即相同的矩陣條目

例子


set.seed(7)
L <- Matrix(rnorm(20) > 1,    4,5)
(N <- as(L, "nMatrix"))
L. <- L; L.[1:2,1] <- TRUE; L.@x[1:2] <- FALSE; L. # has "zeros" to drop0()
D <- Matrix(round(rnorm(30)), 5,6) # -> values in -1:1 (for this seed)
L %&% D
stopifnot(identical(L %&% D, N %&% D),
          all(L %&% D == as((L %*% abs(D)) > 0, "sparseMatrix")))

## cross products , possibly with  boolArith = TRUE :
crossprod(N)     # -> sparse patter'n' (TRUE/FALSE : boolean arithmetic)
crossprod(N  +0) # -> numeric Matrix (with same "pattern")
stopifnot(all(crossprod(N) == t(N) %&% N),
          identical(crossprod(N), crossprod(N +0, boolArith=TRUE)),
          identical(crossprod(L), crossprod(N   , boolArith=FALSE)))
crossprod(D, boolArith =  TRUE) # pattern: "nsCMatrix"
crossprod(L, boolArith =  TRUE) #  ditto
crossprod(L, boolArith = FALSE) # numeric: "dsCMatrix"

也可以看看

%*%crossprod()tcrossprod() ,用於(常規)矩陣乘積方法。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Boolean Arithmetic Matrix Products: %&% and Methods。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。