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

如何实现向量中每隔n个元素与其相邻元素的求和操作

解决方案

原代码问题说明

你现有代码的问题是仅生成了2个随机数做累计和后重复800次,会导致所有奇数位、偶数位的数值分别完全相同,无法得到1600个独立的计算结果。

实现方法

直接先生成完整的1600个符合分布的随机值,再通过向量化操作批量修改偶数位取值即可,无需写循环,执行效率很高。

方法1:索引直接修改(最易理解)

# 生成1600个符合要求的原始随机向量
raw_vec <- rnorm(n = 1600, mean = 5000, sd = 1000)
res_vec <- raw_vec
# 批量修改偶数位置:偶数位 = 前一位奇数位原值 + 自身原值
res_vec[seq(2, 1600, 2)] <- raw_vec[seq(1, 1599, 2)] + raw_vec[seq(2, 1600, 2)]

方法2:矩阵转换实现(代码更简洁)

利用R矩阵按列填充的特性,把向量拆分为2行800列的矩阵,修改第二行(对应原偶数位)的取值后转回向量即可:

raw_vec <- rnorm(n = 1600, mean = 5000, sd = 1000)
mat <- matrix(raw_vec, nrow = 2)
mat[2, ] <- colSums(mat)
res_vec <- as.vector(mat)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:15:08