假设我有以下矩阵
1 1 0 0 0
1 1 0 0 0
0 0 1 1 1
0 0 1 1 1
0 0 1 1 1
结果将是
{[1,2],[3,4,5]}
我该如何实现?
我有一个丑陋的解决方案,涉及一个贯穿对角线的循环(除了(1,1))并检查直接离开的元素是否为0.如果不是,那就是新集群的开始。
有更漂亮的解决方案吗?
编辑:当前的解决方案:
n = size(input, 2);
result = cell(1,n);
result{1} = 1;
counter = 1;
for i = 2:n
if input(i,i-1) ~= 1
counter = counter + 1;
end
result{counter} = [result{counter} i];
end
result = result(~cellfun('isempty',result));
答案 0 :(得分:2)
将unique
用于'行'关于转置矩阵的论证