MATLAB与numpy矩阵中元素位运算的实现区别

2017-12-23  本文已影响111人  高正杰

缘由:在将MATLAB代码转换成Python代码时所遇到的问题。


存在m*n二值矩阵(逻辑矩阵,元素由0和1组成mat1,mat2,mat3,mat4,求多个矩阵中同时大于0的位置下标(MATLAB中矩阵的下标以列为主序,即从第一列的第一行到最后一行依次编号,接着第二列,。。。)


MATLAB代码为:

index = find(mat1 & mat2 & mat3 & mat4);

Python代码为:

import  numpy as np
temp = np.logical_and(np.logical_and(np.logical_and(mat1, mat2), mat3),mat4).flatten(1) 
#flatten(1)表示结果以列为主序进行扁平化
index = np.nonzero(temp)[1] #因为已经扁平化成一行了,所以此处去不为0的元素的列坐标



该文章于2017年5月12日于CSDN上首次发表,2017年12月22日搬家至此!

上一篇 下一篇

猜你喜欢

热点阅读