通过比较两个矩阵创建新矩阵



我有两个矩阵X1X2表示多项式的复解:

X1=(N.t[:,1,1]-N.t[:,0,0]-np.sqrt(delta))/2*(N.t[:,1,0])
X2=(N.t[:,1,1]-N.t[:,0,0]+np.sqrt(delta))/2*(N.t[:,1,0])

我正在尝试创建两个新矩阵C1C2C1必须包含最大值:max(X1, X2)C2必须包含最小值:min(X1, X2)。我使用np.abs来比较这些值,因为它们很复杂,但我不知道如何进行索引。

有人能帮我吗?

要比较复数,首先需要"转换";使用它们的绝对值将它们转换为真实的:

X1_real, X2_real  = np.abs(X1), np.abs(X2)

然后,您可以简单地使用numpy的where函数,如下所示:

boolean_array = (X1_real >= X2_real) # Or >, as you want.
C1 = np.where(boolean_array, X1, X2) # If X1_real[i] is >= X2_real[i], then C1[i] will be equal to X1[i], otherwise to X2[i].
C2 = np.where(boolean_array, X2, X1) # The opposite here.

这与您查找的最大和最小数组相匹配!

相关内容

  • 没有找到相关文章

最新更新