在MATLAB中查找子矩阵的列索引

时间:2015-11-25 20:54:17

标签: arrays matlab matrix

假设我有以下矩阵

 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));

1 个答案:

答案 0 :(得分:2)

unique用于'行'关于转置矩阵的论证