Removing columns in an array with zeros
I have an array starting at zeros and continuing into other numbers I would like to remove columns in an array that start at zero but keep other numbers
example column array below:
x = [0 0 0 0 0 2 4 6 8 0 1 2];
The column array response would look like
x = 2 4 6 8 0 1 2
I am using octave 3.4.2 / matlab
thank
Here is the code:
x = x(find(x~=0, 1):end);
or
x(1:find(x~=0,1)-1) = [];
The find command should work for this.
Assuming your vector is x:
find(x ~= 0)
Will return all indices where x is nonzero. Just take the first index and go from there to remove all values ββfrom 1 to index.
Logical indexing will work fine in this case: i.e.
y = x(:,x(1,:)~=0)
will do the job for you. An internal boolean comparison x(1,:)~=0
returns true for every column whose first element is non-zero. The indexing operation x(:,...)
selects only those columns for which a boolean comparison is returned.