Подсчет значений, которые удовлетворяют условию - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь подсчитать, сколько раз значение в векторе столбца превышает 0.5.Приведенный ниже код помогает мне быть там, где я должен быть, но мне интересно, это самый эффективный способ сделать это.

n = 500
AA = rand(n,1);
for i = 1:n
    if abs(AA(i))>0.5
      BB(i)=1;
    else
      BB(i)=0;
    end
end
sBB = sum(BB);
SD = sBB/n;

1 Ответ

0 голосов
/ 21 февраля 2019

Для этой задачи может быть полезна векторизация:

n = 500
AA = rand(n,1); % You used vectorization already (!) and not create each entry separately...
BB = AA>0.5;    % Results in a vector of logicals which signifies where the condition was met
SD = sum(BB)/n; % Can also be `nnz(BB)/n` or `mean(BB)`
...