【问题标题】:determine if array contains specific integer in octave确定数组是否包含八度音阶中的特定整数
【发布时间】:2016-04-02 03:36:27
【问题描述】:

我有一个看起来像

的数组

测试 = {1,2,3};

我想确定一个整数是否属于数组。我尝试使用 ismember() 和 any() 但它们都返回:

二元运算符“==”未通过“标量”操作为“单元”实现

我将如何做到这一点?提前致谢

【问题讨论】:

    标签: arrays matlab octave


    【解决方案1】:

    如果要检查矩阵中是否存在整数:

    test = [1, 2, 3];
    any (test == 2)
    ans =  1
    

    但在您的问题中,您使用的是元胞数组。在这种情况下,我会先将其转换为矩阵,然后执行相同操作:

    b = {1,2,3};
    any (cell2mat (b) == 2)
    ans =  1
    

    【讨论】:

      【解决方案2】:

      您询问的是检查 array 是否具有给定的整数,但您使用的是 cell。它们完全不同。

      如果你想坚持单元格,你可以像这样迭代它

      test = {1, 2, 3};
      number = 2;
      hasNumber = false;
      for i = 1:size(test,2)
        if(test{i} == number)
          hasNumber = true;
          break;
        end
      end
      

      另一方面,对于数组,您可以这样做,例如

      test = [1, 2, 3];
      number = 2;
      hasNumber = ~isempty(test(test == number));
      

      【讨论】:

        猜你喜欢
        • 2011-01-14
        • 2014-04-14
        • 2010-11-10
        • 1970-01-01
        • 2020-12-31
        • 1970-01-01
        • 1970-01-01
        • 2016-07-20
        相关资源
        最近更新 更多