使用零删除数组中的列

时间:2012-03-21 21:10:45

标签: matlab octave

我有一个以零开头的数组,并继续使用其他数字 我想删除数组中以零开头的列,但保留其他数字

以下列数组的示例:

x = [0 0 0 0 0 2 4 6 8 0 1 2];

列数组的答案看起来像

x = 2 4 6 8 0 1 2

我正在使用八度音阶3.4.2 / matlab

由于

3 个答案:

答案 0 :(得分:1)

find命令应该适用于此。

假设你的矢量是x:

 find(x ~= 0)

将返回x为非零的所有索引。只需抓取第一个索引,然后从那里删除从1到索引的所有值。

答案 1 :(得分:1)

以下是代码:

x = x(find(x~=0, 1):end);

x(1:find(x~=0,1)-1) = [];

答案 2 :(得分:1)

在这种情况下,逻辑索引可以正常工作:即

y = x(:,x(1,:)~=0)

将为您完成这项工作。内部逻辑比较x(1,:)~=0对于第一个元素不为零的每个列都返回true。索引操作x(:,...)仅选择逻辑比较返回true的那些列。