在向量中找到满足条件的元素

时间:2018-08-15 14:42:35

标签: matlab vector

我有一个像这样的向量

A = [1 2 3 1 2 3 1 2 3]

并且我想编写一个函数,如果存在5到9之间的数字,则返回True;否则,返回

2 个答案:

答案 0 :(得分:2)

根据etmuse的建议,您可以在两个条件下使用any

function output = findelem(A)
    if(any(A>5 & A<9))
        output = true;
        return;
    end
    output = false;
end

通话功能:

>>findelem([1 2 3 1 2 3 1 2 3]) 

returns logical 0

>>findelem([1 2 3 1 6 3 1 2 3])

returns logical 1

正如@beaker正确指出的那样,您可以简单地使用:

function output = findelem(A)
    output = (any(A>5 & A<9))
end

答案 1 :(得分:0)

另一种解决方案使用ismember

any(ismember(5:9,A))

它检查5:9中是否存在A中的任何元素。如果您省略了any,它将告诉您A中存在哪些元素:

>> ismember([1,5,9],A)
ans =
   1   0   0

(表示存在1,但没有59)。