1

我正在寻找一种快速方法来评估单元格数组的任何元素是否包含逻辑值false。对于矩阵数组,有一个all不适用于单元格的便捷功能。我很难在不使用循环的情况下为单元数组实现相同的功能,这个解决方案可以工作,但不应该是一个选择。有什么提示吗?

我的单元格数组如下所示:

values = {  vector of values  ;  value  ; ...  ;  false  ;  ... ; value }

所以基本上我把过程的结果写在一个单元格数组中,如果过程中有错误,它会返回一个逻辑false。在下面我需要实现一个错误处理,以防出现任何错误写入false

我真的很感激一些简单的事情,比如:

if ~all(values), do something to handle error; return; end

但对于单元阵列...

编辑:如果一个单元格元素是一个双精度值0,它是一个有效的情况,它不应该返回false

4

2 回答 2

3

检查是否是logical,然后检查是否是false

cellfun(@(x) islogical(x) && ~x, values)

这是真的,你有一个false所以你需要

    if any(cellfun(@(x) islogical(x) && ~x, values))
         %do something to handle error; 
         return; 
    end
于 2013-10-14T10:35:31.997 回答
0

cellfun工作吗?

例如

booltest = all((cellfun(@(x) all(x), values))
于 2013-10-14T10:08:09.030 回答