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

R语言实现30×30矩阵值为对应行列序号乘积的方法

R 30×30矩阵赋值为行列序号乘积的实现方案

你可以用以下几种方式实现需求,优先推荐向量化操作的方案,运行效率更高:

  • 方案1:直接使用row()、col()函数(最简写法)
    R内置的row()和col()可以直接返回矩阵每个位置对应的行号、列号,直接相乘赋值即可:
mat2 <- row(mat2) * col(mat2)

这行代码对任意尺寸的矩阵都适用,不需要修改参数就能直接复用。

  • 方案2:嵌套循环实现(适合初学者理解逻辑)
    如果需要明确遍历每个位置的赋值逻辑,可以用双重for循环实现:
for (i in seq_len(nrow(mat2))) {
  for (j in seq_len(ncol(mat2))) {
    mat2[i, j] <- i * j
  }
}

小尺寸矩阵下该写法运行速度差异不大,矩阵超过1000×1000时更推荐用方案1的向量化写法。

  • 方案3:创建矩阵时直接生成目标值
    你也可以跳过初始化空矩阵的步骤,构造数据时直接生成乘积结果:
mat2 <- matrix(rep(1:30, each = 30) * rep(1:30, 30), nrow = 30, ncol = 30)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:36:04