MATLAB: поиск и подсчет (?) - PullRequest
       24

MATLAB: поиск и подсчет (?)

2 голосов
/ 09 апреля 2010

Нужна помощь MATLAB!

У меня есть набор 1 и 0, мне нужно найти, сколько 1 и сколько 0.

(т.е. x = [1 1 0 0 0 0 0 1 0 0 1 1 ....]). Я искал какую-то встроенную функцию поиска и подсчета, но у меня ничего не получилось.

Ответы [ 3 ]

3 голосов
/ 09 апреля 2010

Вы можете просто сделать

onesInList = sum(x == 1);
zerosInList = sum(x == 0);

Это распространяется на любые значения в вашем списке (то есть, если вы хотите найти все семерки, вы можете просто сделать sevensInList = sum(x == 7);).

3 голосов
/ 09 апреля 2010

Что насчет встроенных функций sum и length, т.е.

numOfOnes = sum(x);
numOfZeros = length(x)-numOfOnes;

Это предполагает, что у вас действительно есть только 0 и 1 в вашем векторе. Если вы можете иметь разные значения, но хотите считать только 0 и 1, вы можете предварительно обработать вектор и считать 1 в логическом векторе:

numOfOnes = sum(x==1);
numOfZeros = sum(x==0);
2 голосов
/ 09 апреля 2010

Хорошей простой опцией является использование функции NNZ :

nOnes = nnz(x);
nZeroes = nnz(~x);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...