Подсчет количества элементов в Matlab - PullRequest
4 голосов
/ 29 апреля 2011

Я новичок в MATLAB.Предположим, у меня есть такой вектор, как x = [1 1 1 1 1 1 0 0 1 0].Я хочу рассчитать общее количество элементов в векторе и количество ненулевых элементов в векторе.Тогда придумайте соотношение обоих чисел.Я ищу помощь в MATLAB.как делать подсчет элементов, но до сих пор мне не везло.Если кто-нибудь окажет мне помощь, это будет очень полезно.Заранее спасибо.

Ответы [ 4 ]

9 голосов
/ 29 апреля 2011

Количество элементов можно получить с помощью numel(x).

Количество ненулевых элементов можно получить с помощью sum(x ~= 0).

. Соотношениеодно делится на другое.

4 голосов
/ 04 ноября 2013

Правильный способ найти количество ненулевых элементов (в общем случае) - использовать функцию nnz(); использование sum() также работает в этом конкретном случае, но завершится неудачей, если в используемой матрице есть числа, отличные от нуля, и одно. Поэтому, чтобы вычислить общее количество элементов, ненулевое количество элементов и коэффициент, используйте код, подобный следующему:

x = [1 1 1 1 1 1 0 0 1 0];
nonzeroes = nnz(x);
total = numel(x);
ratio = nonzeroes / total;
2 голосов
/ 29 апреля 2011

Отношение ненулевых элементов ко всем элементам в векторе:

r = length(find(x)) / length(x)

То, что делает length, является очевидным.find дает вам индекс всех ненулевых элементов.

Редактировать: Исправлена ​​ошибка использования размера вместо длины.

0 голосов
/ 14 февраля 2014

a= numel(find(x))/numel(x) это еще один способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...