确定数组是否包含八度音程中的特定整数

时间:2016-04-02 03:36:28

标签: arrays matlab octave

我有一个看起来像

的数组
  

test = {1,2,3};

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

  

二元运算符'=='未通过'标量'运算实现'单元'

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

2 个答案:

答案 0 :(得分:5)

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

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

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

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

答案 1 :(得分:0)

您问的是检查数组是否具有给定的整数,但您使用的是单元格。他们是完全不同的。

如果你想坚持细胞,你可以像这样迭代它

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));