在GNU Octave中计算等于零的条目

时间:2014-12-10 01:55:19

标签: algorithm octave linear-algebra

GNU Octave中是否有任何命令允许我计算矩阵中的零(不计入非零)条目?

1 个答案:

答案 0 :(得分:3)

有很多方法,我会在下面给你看两个。

a = rand (5,5) > 0.5
a =

   0   0   0   1   1
   1   1   0   1   0
   0   1   0   1   1
   0   0   0   1   0
   1   1   0   1   1

numel (find (a==0))
ans =  12

这对于非常大的矩阵来说更快(见下文)

numel (a) - nnz (a)
ans =  12

大型矩阵的速度测试:

a = rand (1e6, 1e6) > 0.5;
tic
numel (find (a==0))
toc
tic
numel (a) - nnz (a)
toc

给出了

ans =  499566
Elapsed time is 0.060837 seconds.
ans =  499566
Elapsed time is 0.0187149 seconds.