逻辑元素替换[3D矩阵]

时间:2014-05-23 08:55:07

标签: matlab matrix

假设我有2个3D-Matrix:

A = rand(10,4,100);
B = rand(10,4,100);
L = gt(A,B);

现在我希望将B的所有元素替换为仅A L==1的{​​{1}}元素,但这不起作用:

B(L==1,:,:) = A(L==1,:,:);

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

我们甚至更短的找到

B(L) = A(L);

答案 1 :(得分:2)

听起来像是find()功能的工作。

p = find(L);
B(p) = A(p);
编辑:刚认识到你不需要find()功能。只需使用这样的逻辑索引:

B(L==1) = A(L==1);