Python 与 Matlab 切片操作的区别

本文详细对比了Python的numpy库与Matlab在矩阵和序列切片操作上的区别,解析了两者索引方式的不同,Python采用左闭右开区间,而Matlab则为闭区间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值