检查单元格是否相等

时间:2018-10-08 15:22:08

标签: matlab equality cell-array

我正在寻找一种优雅的方法来找出使用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。

2 个答案:

答案 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)