Рассматривали ли вы чтение учебника по Matlab?Возможно, вы нашли ответ быстрее, чем ожидали его появления здесь.
В любом случае, оператор matlab для логического И - &
, а оператор логического отрицания - ~
, и оба работают также наdouble
векторы и матрицы (т. Е. Тип по умолчанию, для которого A и B определены, как указано в вашем вопросе; все значения, отличные от нуля, будут обрабатываться как 1
s).
После того, как вы сделалинеобходимое соединение, sum(x)
даст вам количество единиц в x
, если x имеет тип logical
или double
только с 0
с и 1
с.
Сыройсокращенная форма:
>> bincomb = @(x,y) sum([x&y;x&~y;~x&y;~(x|y)]');
>> bincomb(A,B)
ans =
2 0 1 3