【发布时间】:2016-09-28 22:41:11
【问题描述】:
[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 ]
最后一行有五列为零。我想每个过零只保留一列。
喜欢这个
[1 2 3 5 8 9 ;
9 8 7 5 2 1 ;
1 2 0 1 0 1 ]
这是否可以通过快速的 Matlab 函数实现,还是我必须编写一些缓慢而复杂的 for 循环?
【问题讨论】:
-
我相信你可以做类似于我在stackoverflow.com/questions/39758319/… 中解释的事情。请澄清您选择要保留哪一列的标准是什么?我之所以问,是因为您似乎在示例的第一部分保留了第一列,而在后者中保留了最后一列。
-
您可以使用“查找零交叉”问题的答案,构造一维逻辑索引向量
ind,然后mat(:,ind)=[]删除这些列。