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