如何将Matlab代码转换为python代码?
function b = ismonotone( v, tol )
if ( nargin < 2 )
tol = 0;
end
b = 0;
dv = diff(v);
if ( min(dv) >= -tol ) b = bitor( b, 1 ); end
if ( max(dv) <= tol ) b = bitor( b, 2 ); end
end
我知道python,但对matlab却不太了解。我想通过此示例了解函数的工作方式或一个函数的返回值等
我不知道您的函数的预期用途是什么,但这是将其翻译成Python的意思。
def diff(v):
result = []
for i in range(1, len(v)):
result.append(v[i] - v[i-1])
return result
def ismonotone(v, tol=0):
b = 0
dv = diff(v)
if min(dv) >= -tol:
b = b | 1
if max(dv) <= tol:
b = b | 2
return b
重点:
在Matlab中,diff
是一个内置函数,用于计算数组的相邻元素之间的差。重新实现很简单(尽管这可能不是最高效的方法)。
由于Matlab在处理可变参数函数方面提供了强大的支持,因此您必须烦恼nargin
(这等于传递给函数的参数数量)和类似的垃圾,以使事情有时起作用。因此,Matlab代码基本上是说“如果我的参数少于两个,则设置tol=0
”。在Python中,我们可以仅使用默认值作为参数(tol=0
)。
当您在Matlab中定义函数时,您会这样写:
function return_value = function_name(arguments)
无论return_value
变量的值(在这种情况下为b
)是什么,只要控制权离开函数(即,无论何时到达作用域结尾的end
语句或return
语句),该变量的值就是得到归还。return
Matlab中的语句不接受与Pythonreturn
语句相同的“自变量” 。当然,像大多数合理的语言一样,Python使用显式的return语句。
bitor(a, b)
在matlab中等同于a | b
在Python中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句