我有一个以零开头的数组,并继续使用其他数字 我想删除数组中以零开头的列,但保留其他数字
以下列数组的示例:
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
由于
答案 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的那些列。