У меня есть следующая логическая операция, закодированная в MATLAB, где [A, B, C и D] - все двойные 5x3x16, а [a, b, c и d] - двойные 240x1.Я пытаюсь реализовать ту же логическую операцию в Python, используя Numpy.
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 в сетке LxMxN с уникальными значениями в пределах a, b и c.Теперь я хочу использовать 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];