【问题标题】:How to choose between two values using 'or' in matlab?如何在matlab中使用'或'在两个值之间进行选择?
【发布时间】:2013-03-22 02:47:40
【问题描述】:

我有以下代码:

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...

【问题讨论】:

    标签: matlab find logic cell


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 2013-02-23
    • 2013-09-12
    • 2020-05-17
    • 2011-04-27
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多