将matlab代码转换为python代码

时间:2014-01-04 05:15:17

标签: python matlab

如何将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。我想通过这个例子知道函数是如何工作的,或者函数的返回值是多少等等

1 个答案:

答案 0 :(得分:1)

我不知道你的函数的用途是什么,但这里是将它翻译成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时到达}语句,这就是返回的内容。 Matlab中的return语句不像Python return语句那样接受“参数”。当然,与大多数合理语言一样,Python使用显式返回语句。

  • matlab中的
  • bitor(a, b)相当于Python中的a | b