You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言使用嵌套for循环将向量转换为指定Toeplitz矩阵的实现方法

R语言嵌套for循环手动生成指定Toeplitz矩阵实现

你原有代码的问题是仅覆盖了对角线和上三角的赋值逻辑,完全没有处理下三角区域,且对角线取值固定为x[3],和目标矩阵对角线全为1的要求不符。

首先明确取值规律:观察目标矩阵与向量x = c(1,2,3,4,5)的对应关系:

  • 对角线元素(行号i=列号j)统一取x[1]即1
  • 上三角区域(i<j),列号减行号的差为1时取x[2]、差为2时取x[3]
  • 下三角区域(i>j),行号减列号的差为1时取x[4]、差为2时取x[5]

修正后的嵌套for循环代码如下:

x <- c(1:5)
mat <- matrix(nrow = 3, ncol = 3)
for (i in 1:3) {
  for (j in 1:3) {
    d <- j - i
    if (d >= 0) {
      # 处理对角线和上三角区域
      mat[i,j] <- x[d + 1]
    } else {
      # 处理下三角区域
      mat[i,j] <- x[3 + abs(d)]
    }
  }
}
# 输出验证
print(mat)

运行后输出结果完全匹配需求:

[,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    1    2
[3,]    5    4    1

内容的提问来源于stack exchange,提问作者Iftikhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:36:05