externalFormats
位於 Matrix
包(package)。 說明
讀取以 Harwell-Boeing 或 MatrixMarket 格式存儲的矩陣,或將 sparseMatrix
對象寫入其中一種格式。
用法
readHB(file)
readMM(file)
writeMM(obj, file, ...)
參數
obj |
實數稀疏矩陣 |
file |
對於 或者, |
... |
可選的附加參數。目前沒有任何方法使用。 |
值
readHB
和readMM
函數返回一個繼承自"Matrix"
類的對象。 writeMM
泛型函數的方法通常返回 NULL
,並且作為副作用,矩陣 obj
會以 MatrixMarket 格式 (writeMM) 寫入 file
。
注意
Harwell-Boeing 格式比 MatrixMarket 格式更舊且不太靈活。函數 writeHB
已棄用,現已刪除。請改用writeMM
。
請注意,這些格式不了解 dimnames
的任何信息,因此它們會被 writeMM()
刪除。
導出小型稀疏矩陣 S
的一種非常簡單的方法是使用 summary(S)
,它返回 data.frame
,其中包含 i
、 j
和可能的 x
,請參閱 sparseMatrix-class
中的 summary
,以及下麵的示例。
例子
str(pores <- readMM(system.file("external/pores_1.mtx", package = "Matrix")))
str(utm <- readHB(system.file("external/utm300.rua" , package = "Matrix")))
str(lundA <- readMM(system.file("external/lund_a.mtx" , package = "Matrix")))
str(lundA <- readHB(system.file("external/lund_a.rsa" , package = "Matrix")))
## https://math.nist.gov/MatrixMarket/data/Harwell-Boeing/counterx/counterx.htm
str(jgl <- readMM(system.file("external/jgl009.mtx" , package = "Matrix")))
## NOTE: The following examples take quite some time
## ---- even on a fast internet connection:
if(FALSE) {
## The URL has been corrected, but we need an untar step:
u. <- url("https://www.cise.ufl.edu/research/sparse/RB/Boeing/msc00726.tar.gz")
str(sm <- readHB(gzcon(u.)))
}
data(KNex, package = "Matrix")
## Store as MatrixMarket (".mtx") file, here inside temporary dir./folder:
(MMfile <- file.path(tempdir(), "mmMM.mtx"))
writeMM(KNex$mm, file=MMfile)
file.info(MMfile)[,c("size", "ctime")] # (some confirmation of the file's)
## very simple export - in triplet format - to text file:
data(CAex, package = "Matrix")
s.CA <- summary(CAex)
s.CA # shows (i, j, x) [columns of a data frame]
message("writing to ", outf <- tempfile())
write.table(s.CA, file = outf, row.names=FALSE)
## and read it back -- showing off sparseMatrix():
str(dd <- read.table(outf, header=TRUE))
## has columns (i, j, x) -> we can use via do.call() as arguments to sparseMatrix():
mm <- do.call(sparseMatrix, dd)
stopifnot(all.equal(mm, CAex, tolerance=1e-15))
參考
相關用法
- R expand-methods 展開矩陣分解
- R expm-methods 矩陣指數
- R dtrMatrix-class 三角形稠密數值矩陣
- R facmul-methods 乘以矩陣因式分解的因數
- R solve-methods 函數求解矩陣包中的方法
- R updown-methods 更新和降級稀疏 Cholesky 分解
- R bdiag 構建分塊對角矩陣
- R printSpMatrix 靈活格式化和打印稀疏矩陣
- R symmetricMatrix-class 包矩陣中對稱矩陣的虛擬類
- R all.equal-methods 函數 all.equal() 的矩陣封裝方法
- R boolmatmult-methods 布爾算術矩陣乘積:%&% 和方法
- R ltrMatrix-class 三角密集邏輯矩陣
- R Hilbert 生成希爾伯特矩陣
- R nearPD 最近正定矩陣
- R lsyMatrix-class 對稱密集邏輯矩陣
- R CHMfactor-class 稀疏 Cholesky 分解
- R symmpart-methods 矩陣的對稱部分和偏斜(對稱)部分
- R sparseMatrix 從非零項構建一般稀疏矩陣
- R dgCMatrix-class 壓縮、稀疏、麵向列的數值矩陣
- R Cholesky-methods Cholesky 分解方法
- R Subassign-methods “[<-”的方法 - 分配給“矩陣”的子集
- R ldenseMatrix-class 密集邏輯矩陣的虛擬類“ldenseMatrix”
- R norm-methods 矩陣範數
- R ngeMatrix-class 一般密集非零模式矩陣的“ngeMatrix”類
- R CAex 阿爾伯斯的示例矩陣與“困難”特征分解
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Read and write external matrix formats。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。