我在MATLAB中编码了以下逻辑运算,其中[A,B,C和D]均为5x3x16双精度,而[a,b,c和d]均为240x1双精度。我正在尝试使用numpy在python中实现相同的逻辑操作。
D = zeros(size(A));
for i = 1:numel(D)
flag = ...
(a == A(i)) & ...
(b == B(i)) & ...
(c == C(i));
D(i) = d(flag);
end
d是已填充数据的列向量。 a,b和c也是大小相等的填充列向量。 Meshgrid用于将A,B和C构造为a,b和c内唯一值的LxMxN网格。现在,我想使用d通过布尔表达式使用适当的值填充LxMxN D。
我尝试过:
D= np.zeros(np.shape(N))
for i in range(len(D)):
for j in range(len(D[0])):
for k in range(len(D[0][0])):
flag = np.logical_and(
(a == A[i][j][k]),
(b == B[i][j][k]),
(c == C[i][j][k])
)
D[i][j][k] = d[flag];