检查单元格是否相等
Check cells for equality
我正在寻找一种优雅的方法来使用 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。
c = cellarray(1,1,:);
allTheSameValues = (nnz(bsxfun(@minus, cell2mat(c), cell2mat(c(1)))) == 0)
一次调用 isequal
, passing a comma-separated list 个要测试的参数,应该就是您所需要的:
>> isequal(cellarray{1,1,:})
ans =
logical
1
>> isequal(cellarray{1,2,:})
ans =
logical
0
如果您想将 NaN
值视为相等(默认情况下它们不相等),则只需使用 isequaln
即可。
我正在寻找一种优雅的方法来使用 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。
c = cellarray(1,1,:);
allTheSameValues = (nnz(bsxfun(@minus, cell2mat(c), cell2mat(c(1)))) == 0)
一次调用 isequal
, passing a comma-separated list 个要测试的参数,应该就是您所需要的:
>> isequal(cellarray{1,1,:})
ans =
logical
1
>> isequal(cellarray{1,2,:})
ans =
logical
0
如果您想将 NaN
值视为相等(默认情况下它们不相等),则只需使用 isequaln
即可。