如何在matlab中解决horzcat误差?

如何在matlab中解决horzcat误差?,matlab,cell-array,Matlab,Cell Array,我对二维二进制矩阵进行了一些处理,使用单元数组存储基于元素相等值的信息。我有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]; 。。。直到相似性{n}中的值在相似性{1,…n}=n中 当我运行以下代码时 similarity = cellfun(@unique, similarity, 'UniformOutput',

我对二维二进制矩阵进行了一些处理,使用单元数组存储基于元素相等值的信息。我有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];
。。。直到
相似性{n}
中的值在
相似性{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)中出现错误


有人能帮我找出哪里出了错吗?

这段代码没有错误。请张贴一个可复制的示例缩进您的代码!MATLAB中的CNTRL+A、CNTRL+I如果出现错误,请打开
dbstop,然后重新运行代码。然后在调试器之后检查错误中涉及的所有变量的大小。有些变量的大小不是您期望的大小,让MATLAB告诉您是最容易的。如果您没有提供导致问题的完整输入,以便我们自己运行它并演示错误,那么您的示例是不可复制的。@AnderBiguri,是的,但请不要大声喊叫。:-)