Python 与 Matlab 切片操作的区别
因为本人最近才开始学习python,其中numpy库对于矩阵和序列的操作和matlab有些颇为相似,容易混淆,所以在这里做一下记录。
Python
import numpy as np
x = np.arange(10)
print(x)
print(x[2:5])
# 输出结果:
# [0 1 2 3 4 5 6 7 8 9]
# [2 3 4]
python 中的切片操作要用 [] , 一维格式:list[a:b],二维数组:list[a:b,c:d],维度用逗号分割。
Matlab
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a(2:5)
% 运行结果:
a =
0 1 2 3 4 5 6 7 8 9
ans =
1 2 3 4
matlab 中切片操作要用 () ,我理解的意思是引用序列中的元素。
区别显而易见:
注意python中对于list的切片索引为2取到索引为5(但不包括索引为5的值),相当于数学中的左闭右开区间取值。而matlab中是闭区间,包含索引为5的值。
如果想了解python中对于列表(list)和矩阵(mat)之间的转换可参考:
https://blog.csdn.net/lishuandao/article/details/52443931
本文详细对比了Python的numpy库与Matlab在矩阵和序列切片操作上的区别,解析了两者索引方式的不同,Python采用左闭右开区间,而Matlab则为闭区间。

7395

被折叠的 条评论
为什么被折叠?



