从Matrix MatLab中删除列

时间:2016-09-28 22:41:12

标签: matlab matrix indexing

()

最后一行有五列零。我想每过零一次只保留一列。

像这样

[1 2 3 4 5 6 7 8 9 ; 
 9 8 7 6 5 4 3 2 1 ; 
 1 2 0 0 1 0 0 0 1 ]

这可以通过快速的Matlab函数实现,还是必须编写一些缓慢复杂的for循环?

1 个答案:

答案 0 :(得分:2)

您可以通过多种不同方式创建逻辑数组来查找要删除的列。像这样的东西会起作用

% Find the zeros that are not the first zero
cols_to_remove = data(end,:) == 0 & ~diff([false, data(end,:) == 0]) == 1;

% Now remove them
data(:, cols_to_remove) = [];