MATLAB Answers


I can I do logical indexing on a column

Asked by Engdaw Chane on 20 Jul 2018
Latest activity Commented on by Engdaw Chane on 20 Jul 2018
Hello everyone,
I have a column which is 840 in length. It contains value s from -12 to 12. I need only values < -8 and >8. I need to keep the length 840. I tried the following. but it says " 0x1 empty double column vector".
v = zeros (size (data)); % Pre-allocate!
v=data(data <-8 & data>8)
thank you for helping.


Sign in to comment.

1 Answer

Answer by Birdman
on 20 Jul 2018
Edited by Birdman
on 20 Jul 2018
 Accepted Answer

Is it possible for a value to be smaller than -8 and greater than 8 at the same time? Check your logical operator. You need OR operator instead of AND.
v=data(data <-8 | data>8)
You can not keep the length same. If you want that, fill the other values with a specific value, like zero.


Birdman and Guillaume, Thank you for your swift replay. the solution works fine.I am working on a time-series data. so I need to keep the values to the month they belong. the remaining months can be zero. but how can fill the zeros?
on 20 Jul 2018
Well, if you want to replace values less than absolute 8 by 0, then:
v(abs(v) < 8) = 0;
You may want <= instead of <
Birdman and Guillaume, Thank you!

Sign in to comment.