我正在寻找一种优雅的方法来找出使用equaln
单元格数组中的单元格是否完全相等。这是一个玩具示例:
cellarray{1,1,1} = [true, true, true];
cellarray{1,1,2} = [true, true, true];
cellarray{1,1,3} = [true, true, true];
cellarray{1,2,1} = [true, false, false];
cellarray{1,2,2} = [true, true, false];
cellarray{1,2,3} = [false, false, false];
我想检查单元格cellarray{1,1,:}
中的内容是否可以视为相等。实际上,该矩阵的三维尺寸为1000。
答案 0 :(得分:4)
您只需要做一个对isequal
的调用,并传递一个comma-separated list参数进行测试,就可以了:
>> isequal(cellarray{1,1,:})
ans =
logical
1
>> isequal(cellarray{1,2,:})
ans =
logical
0
如果您想将NaN
值视为相等(默认情况下不是默认值),则只需使用isequaln
。
答案 1 :(得分:0)
c = cellarray(1,1,:);
allTheSameValues = (nnz(bsxfun(@minus, cell2mat(c), cell2mat(c(1)))) == 0)