Я хочу, чтобы бинарная операция поэлементно применялась к большим логическим векторам. Содержание этих векторов заведомо ложное, поэтому из соображений производительности лучше работать с разреженными матрицами. Если я это сделаю, итоговая матрица неверна.
Пример
A = logical([0;1;0;0]);
B = logical([0 0 1 1]);
C = bsxfun(@and,A,B)
В этом случае C равно
C =
0 0 0 0
0 0 1 1
0 0 0 0
0 0 0 0
Если я использую разреженные матрицы, C будет
C = full(bsxfun(@and,sparse(A),sparse(B)))
C =
0 0 0 0
1 1 1 1
0 0 0 0
0 0 0 0
Что, очевидно, неверно.
Наблюдал ли я за чем-то или это ошибка Matlab.