GNU Octave中是否有任何命令允许我计算矩阵中的零(不计入非零)条目?
答案 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.