我使用单元阵列对二维二进制矩阵进行了一些处理,以基于相等的元素值存储信息。我有15
个单元格,其中两个如下:
similarity{1} = [2 5 8 10 12 13 18 19 20 21 22 23];
similarity{2} = [2 5 8 13 18 19 20 21 22 23];
... similarity{n}
中的similarity{1,..n}=n
值。
当我运行以下代码时
similarity = cellfun(@unique, similarity, 'UniformOutput', false);
numsInCell = unique([similarity{:}]); % numbers in cell, sorted
for n = numsInCell % loop over numbers in cell
lSetIs1 = cellfun(@numel,similarity) == 1; % length of set is 1
nInSet = cellfun(@(set) any(set==n), similarity); % set contains n
nIsUnique = sum(nInSet(:))==1; % n occurs once
condition = ~nIsUnique & ~any(nInSet(:) & lSetIs1(:));
% if false for all sets...
if condition
similarity = cellfun(@(set) set(set~=n), similarity, 'UniformOutput',false);
end
end
我收到以下错误
使用horzcat时出错 连接的矩阵的尺寸不一致。
和
@(set)any(set == n)
中的错误
任何人都可以帮我确定我犯错的地方吗?