我习惯于使用 Python 的数组,我可以在计算后直接访问数组元素,而无需将结果定义为单独的数组。(我知道这 100% 令人困惑,这是一个例子:)我可以这样做:
>>> x = np.array([1,2,3], dtype=np.double)
>>> y = np.array([4,0,6], dtype=np.double)
>>> x/y
array([ 0.25, inf, 0.5 ])
>>> (x/y)[np.isfinite(x/y)]
array([ 0.25, 0.5 ])
我知道它不像定义一个新变量(比如z = x/y
)那么清楚,但是当我创建lambda
函数时它很有用。
我想在 Matlab 中做同样的事情,在匿名函数(@
函数)中使用,但我找不到办法。等效(x./y)(isfinite(x./y))
显然不起作用,但是还有另一种方法可以从数组中获取元素吗?我不想使用x(isfinite(x))./y(isfinite(y))
,因为它不会捕获 y 为空的元素。