Python中如何实现向量按固定间隔位置赋值为另一个向量
Python实现MATLAB间隔赋值的方法
使用NumPy(推荐,最接近MATLAB语法)
NumPy的切片逻辑和MATLAB高度相似,只需要注意Python默认从0开始索引即可,实现代码如下:
import numpy as np # 初始化符合题目尺寸要求的向量 x = np.arange(1, 17).reshape(1, 16) y = np.array([1,2,3,4]).reshape(1, 4) # 间隔4赋值,::4表示从起始位置开始、步长为4取元素 x[:, ::4] = y
运行后x的输出结果为:[[ 1 2 3 4 2 6 7 8 3 10 11 12 4 14 15 16]],完全匹配预期。
纯Python列表实现
如果不需要引入第三方库,可以直接通过遍历赋值实现:
# 初始化列表 x = list(range(1, 17)) y = [1,2,3,4] # 按间隔4对应赋值 for idx, val in enumerate(y): x[idx * 4] = val
赋值完成后x的结果为:[1, 2, 3, 4, 2, 6, 7, 8, 3, 10, 11, 12, 4, 14, 15, 16]。
内容的提问来源于stack exchange,提问作者Sajjad
相关产品推荐
相关产品推荐

