Matlab ищет соответствующий элемент

У меня есть целочисленный массив длиной 2000 элементов. Для бывшего

x = [2, 4, 5, 6, 5,6,7,5......];

Теперь в этом массиве мне нужно найти повторяющийся элемент. Например, мне нужно знать, сколько раз встречается число «5». В приведенном выше примере это три раза.

Есть ли способ найти соответствующий элемент и вернуть счет в Matlab?


person user679460    schedule 01.03.2012    source источник


Ответы (2)


Ты знаешь номер заранее?

Если да, то чтобы узнать, сколько раз он появляется в x, вы можете сделать:

sum(x==5)

x==5 создает вектор [FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE ...], равный TRUE всякий раз, когда x равно 5.

Затем sum складывает этот вектор, где FALSE сопоставляется с 0, а TRUE с 1.

person mathematical.coffee    schedule 01.03.2012
comment
nnz(x==5) , numel(find(x==5)) также допустимы. ИМХО они более понятны читателю, потому что вас интересует не суммирование, а количество элементов. - person Andrey Rubshtein; 01.03.2012

Быстрый способ подсчитать

sum(x == 5)

Если вам нужны указатели соответствующих элементов:

find(x == 5)

Обратите внимание, счет также равен length(find(x == 5)). Стандартные предостережения относятся к использованию == и чисел с плавающей запятой.

person Prashant Kumar    schedule 01.03.2012