我有两个类似维度的数据矩阵A
和B
。我打算将A
的每个元素除以B
的相应元素。为此,matlab提供了C = A./B
的快捷方式。但是,B
有许多零元素,对于此类元素,我希望C
的元素为零而不是NAN
。 MATLAB是否提供了一种有效的方法?我可以在一个循环中这样做,但这将是非常昂贵的。
谢谢。
答案 0 :(得分:3)
是。您可以使用逻辑索引:
C = zeros(size(A));
t = logical(B);
C(t) = A(t)./B(t);
使用逻辑索引,只会评估与A
的{{1}}元素对应的B
,C
和true
元素。 t
仅在t
非零的情况下为true
。请注意,B
已预先初始化为零,以自动处理未评估的案例,因为C
为零。