Бинарные операции в MATLAB - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть два вектора A = [1 0 0 0 0 1] и B = [1 0 0 1 0 1].Я хочу рассчитать количество (1,1) (1,0) (0,1) и (0,0) из векторов в Matlab.Любая идея, как это сделать.

1 Ответ

4 голосов
/ 28 апреля 2011

Рассматривали ли вы чтение учебника по 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...