这是一个非常具体的问题。我有一个M * 3矩阵。第一列包含M组元素。它可能会遵循这一点。
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
我的兴趣只有1s和相应的其他列值。我可以删除零只得到一组新的矩阵,但有时可能会这样:
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
当情况如上所述时,我想在开头忽略1并删除M * 3矩阵中的所有元素直到第1个,然后当它到达列中的第二个零开始时它可以删除所有值到列的末尾。 (所以它将是13 * 3矩阵)。
我在matlab中这样做。 谢谢:)
答案 0 :(得分:2)
我们打电话给你的矩阵A:
firstCol = A(:, 1);
indices = find(firstCol);
check = find(diff(indices) ~= 1);
if (isempty(check) )
Afinal = A(indices, :);
else
indices2 = indices(check(1)+1:1:check(2));
Afinal = A(indices2, :);
end
Afinal应该是你正在寻找的输出。