matlab的索引方式有3种: 1.vector索引 2.linear索引 3.logic索引
python对于可索引的数据结构索引方式和matlab的1,3种有相似之处,第二种python不支持。
所谓向量索引: matlab: v=[1 2 3 4 5] v([5 2 3]) %取出1,2,3号元素 v([3:5]) %取出3~5号元素 v([2:4 1:4]) %取出5~8,再取出1~4号元素 v([1:2:end])%取出奇数元素 v([end:-1:1])%倒置向量
矩阵也可以进行相关索引:其中matrix(:) %表示vec(x),也就是拉直算子
对应的python表达方式: v[4] v[1] v[2] #取出1,2,3号元素
v[2:]#取出3~5号元素
vv=[v[1:4]],v[:4]] vv[:] #取出5~8,再取出1~4号元素
v[::2] #取出奇数元素
v[-1::-1]或v[::-1] #倒置向量
所谓logic索引: array(array>0)%array中所有>0的元素不变,其余元素置为0
python实现: filter(func,array)
这样可以更好理解用切片做这个的代码。 意见仅供参考,可能还有问题。大家共同进步 p.s.:用递归写的那个也很好;作者的求素数代码感觉有问题,运行不出来,还导致我linux崩溃
感觉有点小错误,但还是不错的对比,赞。 PS:作者的求素数代码运行没问题。
Sign in to make a reply
其实我对你很在乎的
matlab的索引方式有3种: 1.vector索引 2.linear索引 3.logic索引
python对于可索引的数据结构索引方式和matlab的1,3种有相似之处,第二种python不支持。
所谓向量索引: matlab: v=[1 2 3 4 5] v([5 2 3]) %取出1,2,3号元素 v([3:5]) %取出3~5号元素 v([2:4 1:4]) %取出5~8,再取出1~4号元素 v([1:2:end])%取出奇数元素 v([end:-1:1])%倒置向量
矩阵也可以进行相关索引:其中matrix(:) %表示vec(x),也就是拉直算子
对应的python表达方式: v[4] v[1] v[2] #取出1,2,3号元素
v[2:]#取出3~5号元素
vv=[v[1:4]],v[:4]] vv[:] #取出5~8,再取出1~4号元素
v[::2] #取出奇数元素
v[-1::-1]或v[::-1] #倒置向量
所谓logic索引: array(array>0)%array中所有>0的元素不变,其余元素置为0
python实现: filter(func,array)
这样可以更好理解用切片做这个的代码。 意见仅供参考,可能还有问题。大家共同进步 p.s.:用递归写的那个也很好;作者的求素数代码感觉有问题,运行不出来,还导致我linux崩溃