2014-03-28 34 views

回答

5

只要使用此 -

count = nnz(d==6) 

一個nnz的用途是計算髮現匹配的數目。在這種情況下,這將的d每一個元素之間做比較以6並返回基於所述匹配的oneszeros邏輯陣列被發現,但分別或然後nnz將計數的ones出現的次數。對於這種情況,nnz確實是一個非常有效的工具,請嘗試探索它。

0

如果你只是要算單個值出現的次數,然後使用nnz(d==6)作爲@Divakar建議,但如果你要計算多個值總數,3S 6S說,你可以做到這一點與ismember

num3s6s = nnz(ismember(d,[3 6])) 

一樣:

num3s6s = nnz(d==3 | d==6) 
0

如果你想獲得每個值的計數:使用histc

d = [1 2 4 2 3 4 5 4 3 6]; %// example data 
values = 1:6; %// values you want the count of 
count = histc(d, values); 

這給

count = 
    1  2  2  3  1  1 
1
nnz(d==6) 

正如Divakar給出的是巨大的。但是,使用sum通常較快:

sum(d(:)==6) 

例子:

d = floor (6 * rand (1 , 2e6) + 1); 
tic;nnz(d==6);toc; 
tic;sum(d(:)==6);toc; 

給出:

Elapsed time is 0.020109 seconds. 
Elapsed time is 0.012709 seconds.