【问题标题】:Counting entries equal to zero in GNU Octave在 GNU Octave 中计数等于零的条目
【发布时间】:2015-02-08 02:59:48
【问题描述】:

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

【问题讨论】:

  • 该链接有帮助,谢谢。具体来说,sum(your_matrix == 5) 是有帮助的示例。
  • @user2780341,您的问题标题和问题正文不匹配。在标题中,您询问是否计算 零条目。在正文中,您询问的是计数 zero 条目。你介意编辑一下吗?

标签: algorithm octave linear-algebra


【解决方案1】:

有很多方法,下面我给你介绍两种。

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.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多