如何在matlab中使用'或'来选择两个值?

时间:2013-03-21 18:32:18

标签: matlab find logic cell

我有以下代码:

a = cell(4,1);
a{1} = [5 3 0 0];
a{2} = [0 3 5 0];
a{3} = [1 3 0 0];
a{4} = [0 3 2 0];

arrayind = 2;

b = a(cellfun(@(x)x(arrayind) == 1,a));
b{:}

使用IF语句时如何实现此目的:

if r>2
b = a(cellfun(@(x)x(arrayind) == (1 | 2 | 3),a));
end

基本上说,找到1,如果没有那么2,如果不存在那么3 ......

1 个答案:

答案 0 :(得分:0)

ismember也许就是你想要的。 用ismember替换等于运算符,如下所示:

a = cell(4,1);
a{1} = [5 3 0 0];
a{2} = [0 3 5 0];
a{3} = [1 3 0 0];
a{4} = [0 3 2 0];
arrayind = 1;
b = a(cellfun(@(x) ismember(x(arrayind), [1 5]), a));

会产生b = a([1, 3])