如何使用'在两个值之间进行选择;或';在matlab中?

如何使用'在两个值之间进行选择;或';在matlab中?,matlab,find,logic,cell,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,如

我有以下代码:

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…

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

您的代码确实帮助了我,但我面临一个新问题。如果你有时间,请检查这个