【问题标题】:Converting matlab program to equivalent python code将matlab程序转换为等效的python代码
【发布时间】:2012-08-10 09:20:20
【问题描述】:

想要在 Python 中实现下面列出的 Matlab 命令。我能够找出 Python 中的 Matlab 等效命令,但我没有得到确切的结果。有人可以帮我实现这一目标吗?

MATLAB 代码:

n0 = 3
n1 = 1
n2 = 5
n = [n1:n2]
>> 1 2 3 4 5
x = [(n - n0) == 0]
>> 0 0 1 0 0

Python 代码:

import numpy 
n0 = 3
n1 = 1
n2 = 5
n = r_[n1:n2+1]
>> [1 2 3 4 5]
x = r_[(n-n0) == 0]
>> [False False True False False]

所以 x 是我的数组,布尔数据类型为“[array([False, False, True, False False], dtype=bool)]”。如何使我的最后一个命令以 0 或 1 的形式返回结果,以使结果与 Matlab 完全相同。

【问题讨论】:

    标签: python numpy scipy


    【解决方案1】:

    使用列表推导将 bool 转换为 int:

    [int(val) for val in x]
    

    【讨论】:

    • Thx,它可以与 array 命令一起使用,这样返回的列表是 ndarray 数据类型的。但是有没有办法在我执行命令时,结果将直接属于那种类型。我知道 numpy 数组中有一些方法/属性可以控制数据类型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-30
    • 2018-05-13
    • 2018-10-30
    • 2013-09-02
    相关资源
    最近更新 更多