()
最后一行有五列零。我想每过零一次只保留一列。
像这样[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循环?
答案 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) = [];