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

R语言ijMatrix函数异常:生成序列仅返回单个值的问题

解决R语言ijMatrix函数的序列生成与矩阵返回问题

你的问题核心是运算符优先级导致序列生成错误:在R中,:的优先级高于+,所以i : i + n -1会先执行i:i得到单个值,再加上n-1,自然只返回一个数。只要给i + n -1加上括号,就能先计算序列的终点值,再生成正确的序列。

另外,当前函数最后返回的是列表,需要把它转换成矩阵才能得到你要的n×n格式。以下是修改后的代码,完全保留你原有的循环编写风格:

ijMatrix <- function(n) {
  temp <- list()
  for (i in 0 : -(n - 1)) {
    temp2 <- list(i:(i + n - 1)) # 修复:给终点值加括号
    temp[length(temp) + 1] <- temp2 
  }
  # 将列表转换为矩阵,按行填充
  matrix(unlist(temp), nrow = n, byrow = TRUE)
}

print(ijMatrix(3))

运行这段代码,输出结果就是你预期的:

[,1] [,2] [,3]
[1,]    0   -1   -2
[2,]    1    0   -1
[3,]    2    1    0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:14:53