缘由:在将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日搬家至此!