我有一个以零开头的数组并继续使用其他数字我想删除数组中以零开头但保留其他数字的列
以下列数组的示例:
x = [0 0 0 0 0 2 4 6 8 0 1 2];
列数组的答案看起来像
x = 2 4 6 8 0 1 2
我正在使用octave 3.4.2 / matlab
谢谢
在这种情况下,逻辑索引可以正常工作:即,
y = x(:,x(1,:)~=0)
会为你做的工作 . 内部逻辑比较 x(1,:)~=0 对于第一个元素不为零的每个列都返回true . 索引操作 x(:,...) 仅选择逻辑比较返回true的那些列 .
x(1,:)~=0
x(:,...)
这是代码:
x = x(find(x~=0, 1):end);
要么
x(1:find(x~=0,1)-1) = [];
find命令应该适用于此 .
假设你的向量是x:
find(x ~= 0)
将返回x为非零的所有索引 . 只需 grab 第一个索引,然后从那里删除从1到索引的所有值 .
3 回答
在这种情况下,逻辑索引可以正常工作:即,
会为你做的工作 . 内部逻辑比较
x(1,:)~=0
对于第一个元素不为零的每个列都返回true . 索引操作x(:,...)
仅选择逻辑比较返回true的那些列 .这是代码:
要么
find命令应该适用于此 .
假设你的向量是x:
将返回x为非零的所有索引 . 只需 grab 第一个索引,然后从那里删除从1到索引的所有值 .