【问题标题】:MATLAB : search and count (?)MATLAB:搜索和计数(?)
【发布时间】:2010-04-09 07:18:10
【问题描述】:

需要一些 MATLAB 帮助!

我有一组 1 和 0,我需要找出多少个 1 和多少个 0。

(即 x = [ 1 1 0 0 0 0 0 1 0 0 1 1 ....])。我正在查看一些搜索和计数内置功能,但是我没有成功。

【问题讨论】:

    标签: matlab search


    【解决方案1】:

    内置的sumlength 函数呢,即

    numOfOnes = sum(x);
    numOfZeros = length(x)-numOfOnes;
    

    这假设您的向量中实际上只有 0 和 1。如果您可以有不同的值但只想计算 0 和 1,则可以预处理向量并计算逻辑向量中的 1:

    numOfOnes = sum(x==1);
    numOfZeros = sum(x==0);
    

    【讨论】:

    • @groovingandi:谢谢! .... 如果一个人过于频繁地使用编程语言(脚本语言),就会发生这种情况......一个人忘记了简单易用的 MATLAB! ...:)
    【解决方案2】:

    你可以这样做

    onesInList = sum(x == 1);
    zerosInList = sum(x == 0);
    

    这扩展到您在列表中拥有的任何值(即,如果您想找到所有的七人组,您可以直接使用sevensInList = sum(x == 7);)。

    【讨论】:

    • -1 用于用这些名称的变量掩盖内置的“ones”和“zeros”函数......选择更好的变量名!这几乎和在 for 循环中使用“i”然后不能使用 i 来表示 sqrt(-1) 一样糟糕。
    • @Michael doh! 抱歉,有一段时间没有编写 MATLAB!
    【解决方案3】:

    一个不错的简单选择是使用函数NNZ

    nOnes = nnz(x);
    nZeroes = nnz(~x);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-23
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多