Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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_Matlab_Numpy_Python 3.4 - Fatal编程技术网

将matlab脚本转换为python

将matlab脚本转换为python,matlab,numpy,python-3.4,Matlab,Numpy,Python 3.4,我是一名大学本科生,与一位教授一起参加了一个研究学分,所以这对我来说几乎是一个独立的项目 我正在将一个matlab脚本转换为python(3.4)脚本,以便在项目的其余部分更容易使用。脚本中使用了“查找”功能,如下所示: keyindx = find(summags>=cumthresh,1) Keyindx将包含summag中第一个值在cumsthresh之上的位置 例如: summags = [ 1 4 8 16 19] cumthresh = 5 然后keyindx将返回索引2,

我是一名大学本科生,与一位教授一起参加了一个研究学分,所以这对我来说几乎是一个独立的项目

我正在将一个matlab脚本转换为python(3.4)脚本,以便在项目的其余部分更容易使用。脚本中使用了“查找”功能,如下所示:

keyindx = find(summags>=cumthresh,1)
Keyindx将包含summag中第一个值在cumsthresh之上的位置

例如:

summags = [ 1 4 8 16 19]
cumthresh = 5
然后keyindx将返回索引2,其元素对应于8

我的问题是,我正试图在python中找到一个类似的函数(我也在使用numpy,可以使用我需要的任何库),它将以同样的方式工作。我的意思是,我有C语言的背景,我知道如何获得我需要的一切,但我认为有更好的方法来做到这一点,然后只编写一些C风格的代码

因此,任何关于在python文档中查找位置和查找常用函数的提示?

np.nonzero(x)
提供了一个非零索引的元组。然后,该值可用于索引任何匹配大小的数组

In [1262]: x=np.arange(6).reshape(2,3)

In [1263]: ind=np.nonzero(x>3)

In [1264]: x[ind]
Out[1264]: array([4, 5])

In [1265]: ind
Out[1265]: (array([1, 1], dtype=int32), array([1, 2], dtype=int32))
非零(x)给出了非零索引的元组。然后,该值可用于索引任何匹配大小的数组

In [1262]: x=np.arange(6).reshape(2,3)

In [1263]: ind=np.nonzero(x>3)

In [1264]: x[ind]
Out[1264]: array([4, 5])

In [1265]: ind
Out[1265]: (array([1, 1], dtype=int32), array([1, 2], dtype=int32))
非零(x)给出了非零索引的元组。然后,该值可用于索引任何匹配大小的数组

In [1262]: x=np.arange(6).reshape(2,3)

In [1263]: ind=np.nonzero(x>3)

In [1264]: x[ind]
Out[1264]: array([4, 5])

In [1265]: ind
Out[1265]: (array([1, 1], dtype=int32), array([1, 2], dtype=int32))
非零(x)给出了非零索引的元组。然后,该值可用于索引任何匹配大小的数组

In [1262]: x=np.arange(6).reshape(2,3)

In [1263]: ind=np.nonzero(x>3)

In [1264]: x[ind]
Out[1264]: array([4, 5])

In [1265]: ind
Out[1265]: (array([1, 1], dtype=int32), array([1, 2], dtype=int32))

通过快速搜索,我找到了
argwhere
函数,您可以将该函数与
[0]
结合使用,以获得满足您条件的第一个索引。比如说,

>> import numpy as np
>> x = np.array(range(1,10))
>> np.argwhere(x > 5)[0]
array([5])
这和你说的不太一样

find(x > 5, 1)
在MATLAB中,由于Python代码将在没有任何值满足您的条件时抛出一个
索引器
(而MATLAB返回一个空数组)。但是,您可以捕捉到这一点,并适当地处理它,例如

try:
    ind = np.argwhere(x > 5)[0]
except IndexError:
    ind = np.array([1])

通过快速搜索,我找到了
argwhere
函数,您可以将该函数与
[0]
结合使用,以获得满足您条件的第一个索引。比如说,

>> import numpy as np
>> x = np.array(range(1,10))
>> np.argwhere(x > 5)[0]
array([5])
这和你说的不太一样

find(x > 5, 1)
在MATLAB中,由于Python代码将在没有任何值满足您的条件时抛出一个
索引器
(而MATLAB返回一个空数组)。但是,您可以捕捉到这一点,并适当地处理它,例如

try:
    ind = np.argwhere(x > 5)[0]
except IndexError:
    ind = np.array([1])

通过快速搜索,我找到了
argwhere
函数,您可以将该函数与
[0]
结合使用,以获得满足您条件的第一个索引。比如说,

>> import numpy as np
>> x = np.array(range(1,10))
>> np.argwhere(x > 5)[0]
array([5])
这和你说的不太一样

find(x > 5, 1)
在MATLAB中,由于Python代码将在没有任何值满足您的条件时抛出一个
索引器
(而MATLAB返回一个空数组)。但是,您可以捕捉到这一点,并适当地处理它,例如

try:
    ind = np.argwhere(x > 5)[0]
except IndexError:
    ind = np.array([1])

通过快速搜索,我找到了
argwhere
函数,您可以将该函数与
[0]
结合使用,以获得满足您条件的第一个索引。比如说,

>> import numpy as np
>> x = np.array(range(1,10))
>> np.argwhere(x > 5)[0]
array([5])
这和你说的不太一样

find(x > 5, 1)
在MATLAB中,由于Python代码将在没有任何值满足您的条件时抛出一个
索引器
(而MATLAB返回一个空数组)。但是,您可以捕捉到这一点,并适当地处理它,例如

try:
    ind = np.argwhere(x > 5)[0]
except IndexError:
    ind = np.array([1])


还有,如果你否决我的话,你能提供一个理由吗?我不确定我的问题有什么不好的…不是反对者,但我怀疑原因是你没有展示你的尝试,也没有给出一个小的示例数组来演示这种行为。find做了什么,你做了什么等等@AndyHayden我认为有理由期待任何回答标有“matlab”的问题的人都知道
find
函数的功能!谢谢Andy和Chris,我感谢您的反馈,我已经更新了我的问题,并修复了我认为返回的问题中的一个错误。还有可能重复,如果您否决我,请您提供一个原因?我不确定我的问题有什么不好的…不是反对者,但我怀疑原因是你没有展示你的尝试,也没有给出一个小的示例数组来演示这种行为。find做了什么,你做了什么等等@AndyHayden我认为有理由期待任何回答标有“matlab”的问题的人都知道
find
函数的功能!谢谢Andy和Chris,我感谢您的反馈,我已经更新了我的问题,并修复了我认为返回的问题中的一个错误。还有可能重复,如果您否决我,请您提供一个原因?我不确定我的问题有什么不好的…不是反对者,但我怀疑原因是你没有展示你的尝试,也没有给出一个小的示例数组来演示这种行为。find做了什么,你做了什么等等@AndyHayden我认为有理由期待任何回答标有“matlab”的问题的人都知道
find
函数的功能!谢谢Andy和Chris,我感谢您的反馈,我已经更新了我的问题,并修复了我认为返回的问题中的一个错误。还有可能重复,如果您否决我,请您提供一个原因?我不确定我的问题有什么不好的…不是反对者,但我怀疑原因是你没有展示你的尝试,也没有给出一个小的示例数组来演示这种行为。find做了什么,你做了什么等等@AndyHayden我认为有理由期待任何回答标有“matlab”的问题的人都知道
find
函数的功能!感谢Andy和Chris,我感谢您的反馈,我已经更新了我的问题,并修复了我认为返回的问题中的一个错误。可能是重复的,谢谢您的建议!仍然习惯于蟒蛇式风格,非常陌生。:)谢谢你的建议!仍然习惯于蟒蛇式风格,非常陌生。:)谢谢你的建议!还在习惯吗