如何在Python中实现MATLAB式数组拼接,生成目标数值序列?
MATLAB数组拼接逻辑迁移到Python的实现方法
完整实现代码
要实现和MATLAB完全一致的数组(包括列向量形式),可以用NumPy的拼接函数完成,以下是两种常用方法:
方法1:使用np.concatenate
import numpy as np N, y1, y2 = 4, 2, 6 n = np.arange(1, N) y_part = ((y2 - y1)/N * n + y1) # 拼接单个元素y2,需先转为数组;若要列向量则添加维度并指定axis=0 y = np.concatenate([y_part, np.array([y2])]) # 转为列向量(和MATLAB输出格式一致) y_col = y.reshape(-1, 1) print(y_col)
输出结果:
[[3.] [4.] [5.] [6.]]
方法2:使用np.append(更简洁)
import numpy as np N, y1, y2 = 4, 2, 6 n = np.arange(1, N) y_part = ((y2 - y1)/N * n + y1) y = np.append(y_part, y2) # 转为列向量 y_col = y[:, np.newaxis] print(y_col)
关键说明
- MATLAB中用
;实现纵向拼接,对应Python里需要保证拼接的两个对象维度匹配:单个元素y2要先转为一维数组(np.array([y2])),再和已生成的y_part拼接。 - 如果需要和MATLAB完全一致的列向量格式,通过
reshape(-1,1)或[:, np.newaxis]将一维数组转为二维列向量即可。
内容的提问来源于stack exchange,提问作者Mario
相关产品推荐
相关产品推荐

