如何在matlab中解决horzcat误差?
我对二维二进制矩阵进行了一些处理,使用单元数组存储基于元素相等值的信息。我有15个单元格,其中两个如下:如何在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',
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,是的,但请不要大声喊叫。:-)