【发布时间】:2018-04-23 07:49:36
【问题描述】:
我有以下 MATLAB 代码,我想使用 Python 进行复制。
MATLAB 代码为 when xDiff == 2 创建一个逻辑数组,然后使用该逻辑数组从 tDiff 数组中提取相应的值以创建结果数组 tTacho。
MATLAB 代码:
tTacho = tDiff(xDiff == 2)
【问题讨论】:
标签: python arrays matlab indexing
我有以下 MATLAB 代码,我想使用 Python 进行复制。
MATLAB 代码为 when xDiff == 2 创建一个逻辑数组,然后使用该逻辑数组从 tDiff 数组中提取相应的值以创建结果数组 tTacho。
MATLAB 代码:
tTacho = tDiff(xDiff == 2)
【问题讨论】:
标签: python arrays matlab indexing
您可以使用 NumPy 执行 boolean indexing。
例如:
import numpy as np
x_diff = np.array([0, 2, 2, 0, 0, 2])
t_diff = np.array([0, 1, 2, 3, 4, 5])
print(t_diff[x_diff == 2])
给予:
array([1, 2, 5])
如果你不想使用 NumPy,那么你可以使用 list comprehensions 和 zip:
x_diff = [0, 2, 2, 0, 0, 2]
t_diff = [0, 1, 2, 3, 4, 5]
print([t for t, x in zip(t_diff, x_diff) if x == 2])
给予:
[1, 2, 5]
【讨论】:
您也可以使用列表索引。
tDiff=[1,2,4,5,6,6,7]
xDiff=[2,3,2,2,2,2,2]
for x in range(0,len(xDiff)):
if xDiff[x]==2:
print tDiff[x]
如果这有帮助的话。
【讨论】: