R语言
toeplitz
位于 stats
包(package)。 说明
在最简单的使用中,toeplitz()
形成一个给定第一列(或行)的对称托普利茨矩阵。对于一般情况,不对称和非方托普利茨矩阵可以通过分别指定第一列和行来形成,
T1 <- toeplitz(col, row)
或通过
T <- toeplitz2(x, nr, nc)
其中仅需要指定 (nr, nc)
之一。在后一种情况下,满足简单等价 其中 ncol(T)
。
用法
toeplitz (x, r = NULL, symmetric = is.null(r))
toeplitz2(x, nrow = length(x) +1 - ncol, ncol = length(x) +1 - nrow)
参数
x |
对于 |
r |
目标托普利茨矩阵的第一行;仅在不对称情况下需要。 |
symmetric |
可选的 |
nrow, ncol |
行数和列数;只需要指定一项。 |
值
托普利茨矩阵 ;为了
toeplitz()
:-
在对称情况下
dim(T)
是(n,m)
、m == length(x)
和n == m
,否则是n == length(r)
。 toeplitz2()
:-
dim(T) == c(nrow, ncol)
。
例子
x <- 1:5
toeplitz (x)
T. <- toeplitz (1:5, 11:13) # with a *Warning* x[1] != r[1]
T2 <- toeplitz2(c(13:12, 1:5), 5, 3)# this is the same matrix:
stopifnot(identical(T., T2))
# Matrix of character (could also have logical, raw, complex ..) {also warning}:
noquote(toeplitz(letters[1:4], LETTERS[20:26]))
## A convolution/smoother weight matrix :
m <- 17
k <- length(wts <- c(76, 99, 60, 20, 1))
n <- m-k+1
## Convolution
W <- toeplitz2(c(rep(0, m-k), wts, rep(0, m-k)), ncol=n)
## "display" nicely :
if(requireNamespace("Matrix"))
print(Matrix::Matrix(W)) else {
colnames(W) <- paste0(",", if(n <= 9) 1:n else c(1:9, letters[seq_len(n-9)]))
print(W)
}
## scale W to have column sums 1:
W. <- W / sum(wts)
all.equal(rep(1, ncol(W.)), colSums(W.), check.attributes = FALSE)
## Visualize "mass-preserving" convolution
x <- 1:n; f <- function(x) exp(-((x - .4*n)/3)^2)
y <- f(x) + rep_len(3:-2, n)/10
## Smoothing convolution:
y.hat <- W. %*% y # y.hat := smoothed(y) ("mass preserving" -> longer than y)
stopifnot(length(y.hat) == m, m == n + (k-1))
plot(x,y, type="b", xlim=c(1,m)); curve(f(x), 1,n, col="gray", lty=2, add=TRUE)
lines(1:m, y.hat, col=2, lwd=3)
rbind(sum(y), sum(y.hat)) ## mass preserved
## And, yes, convolve(y, *) does the same when called appropriately:
all.equal(c(y.hat), convolve(y, rev(wts/sum(wts)), type="open"))
作者
A. Trapletti and Martin Maechler (speedup and asymmetric extensions)
相关用法
- R tsdiag 时间序列拟合的诊断图
- R terms 示范条款
- R ts.plot 绘制多个时间序列
- R ts 时间序列对象
- R terms.object 术语对象的说明
- R tsSmooth 对时间序列使用固定间隔平滑
- R termplot 绘制回归项
- R time 时间序列的采样次数
- R ts-methods 时间序列对象的方法
- R ts.union 绑定两个或多个时间序列
- R tsp 类时间序列对象的 Tsp 属性
- R t.test 学生 t 检验
- R terms.formula 从公式构造术语对象
- R stlmethods STL 对象的方法
- R medpolish 矩阵的中值波兰(稳健双向分解)
- R naprint 调整缺失值
- R summary.nls 总结非线性最小二乘模型拟合
- R summary.manova 多元方差分析的汇总方法
- R formula 模型公式
- R nls.control 控制 nls 中的迭代
- R aggregate 计算数据子集的汇总统计
- R deriv 简单表达式的符号和算法导数
- R kruskal.test Kruskal-Wallis 秩和检验
- R quade.test 四方测试
- R decompose 移动平均线的经典季节性分解
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Create Symmetric and Asymmetric Toeplitz Matrix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。