Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将函数从matlab转换为python_Python_Matlab_Numpy - Fatal编程技术网

将函数从matlab转换为python

将函数从matlab转换为python,python,matlab,numpy,Python,Matlab,Numpy,我是python新手。我在将matlab中的这个简单函数转换为python时遇到了一个问题。这是原始的matlab代码 function Cmode=my_map(image1) [D,A,B] = size(image1) crp = image1((1:D),(A:-1:1),(B:-1:1)); Cmode1 = max(crp,[],1); Cmode = permute(Cmode1,[3 2 1]); 输入文件为3d矩阵。我试过了,但失败了 def cmode(image1):

我是python新手。我在将matlab中的这个简单函数转换为python时遇到了一个问题。这是原始的matlab代码

function Cmode=my_map(image1)

[D,A,B] = size(image1)
crp = image1((1:D),(A:-1:1),(B:-1:1));
Cmode1 = max(crp,[],1);
Cmode = permute(Cmode1,[3 2 1]);
输入文件为3d矩阵。我试过了,但失败了

def cmode(image1):
   [D,A,B] = np.shape(image1)
   crp = image1[(0,D),(A,-1,0), (B,-1,0)]
   cmode1 = np.max(crp,[],1)
   c = np.transpose( np.expand_dims(cmode1, axis=2), (2, 1, 0) )
   return c
这里是错误

crp = d3image[(0,D),(A,-1,0), (B,-1,0)]
IndexError: shape mismatch: indexing arrays could not be broadcast together      with shapes (2,) (3,) (3,) 

任何帮助都将不胜感激。谢谢

D
A
B
是不必要的,它们仅用于从端到端读取图像(第二轴和第三轴向后读取)。在NumPy中,该符号是

crp = image1[:, ::-1, ::-1]
其次,
max
的第二个参数不起作用,您应该使用

cmode1 = np.max(crp, axis=1)

D
A
B
是不必要的,它们仅用于从端到端读取图像(第二轴和第三轴向后读取)。在NumPy中,该符号是

crp = image1[:, ::-1, ::-1]
其次,
max
的第二个参数不起作用,您应该使用

cmode1 = np.max(crp, axis=1)

np.max(image1,axis=0,keepdims=1)
因为MATLAB保持dims,以便与MATLAB版本严格一致。然后您需要这样的东西:
np.max(image1,axis=0,keepdims=1)[0].T
来删除额外的dim。如果您急于到达最终目的地:
np.max(image1,axis=0).T
np.max(image1,axis=0,keepdims=1)
,因为MATLAB保持dims,以便与MATLAB的版本严格一致。然后您需要这样的东西:
np.max(image1,axis=0,keepdims=1)[0].T
来删除额外的dim。如果您急于到达最终目的地:
np.max(image1,axis=0).T
。您应该更改此问题的标题,以更好地反映函数的功能。这样,将来可能会帮助更多的SO用户。您应该更改此问题的标题,以更好地反映函数的功能。这样一来,它可能会在未来帮助更多的SO用户。