如何将向量元素延迟2个索引/采样点赋值生成新向量
向量延迟指定采样位置前补零的实现方法
你需要实现的是序列固定延迟、前序补零的操作,核心逻辑非常直接:
- 明确延迟步数:本次需求为延迟2个索引位置,前置补零的数量和延迟步数相等
- 构造长度等于延迟步数的全零前置序列
- 将全零前置序列拼接在原向量A的最前方,得到的就是目标向量B
以下是几种常用编程/数值计算环境下的具体实现代码:
Python 原生列表实现
# 定义原向量 A = [10,20,40,60,70,80] # 定义延迟步数 delay_step = 2 # 构造目标向量 B = [0] * delay_step + A
运行后B的输出为[0, 0, 10, 20, 40, 60, 70, 80],和需求完全一致。
Python NumPy 数组实现(数据处理/科学计算场景)
import numpy as np A = np.array([10,20,40,60,70,80]) delay_step = 2 B = np.concatenate([np.zeros(delay_step, dtype=A.dtype), A])
MATLAB 实现(数值计算/信号处理场景)
A = [10,20,40,60,70,80]; delay_step = 2; B = [zeros(1, delay_step), A];
注意:该操作属于信号处理中典型的线性移位(延迟)操作,和循环移位不同,不需要把原向量末尾溢出的元素补到序列开头,最终输出序列的长度为「原向量长度+延迟步数」。
内容的提问来源于stack exchange,提问作者Mrinmoyee Mukherjee
相关产品推荐
相关产品推荐

