首页 文章

特定列[删除最后为零元素的元素,然后从第一个零元素到结尾删除元素]

提问于
浏览
0

这是一个非常具体的问题 . 我有一个M * 3矩阵 . 第一列包含M组元素 . 它可能会遵循这一点 .

0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0

我的兴趣只有1和相应的其他列值 . 我可以删除零只获得一组新的矩阵,但有时可能会这样:

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中这样做 . 谢谢 :)

1 回答

  • 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应该是您正在寻找的输出 .

相关问题