MATLAB Answers

## I can I do logical indexing on a column

Asked by Engdaw Chane

### Engdaw Chane (view profile)

on 20 Jul 2018
Latest activity Commented on by Engdaw Chane

### Engdaw Chane (view profile)

on 20 Jul 2018
Accepted Answer by Birdman

### Birdman (view profile)

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.
Chane

#### 0 Comments

Sign in to comment.

## 1 Answer

### Birdman (view profile)

Answer by Birdman

### Birdman (view profile)

on 20 Jul 2018
Edited by Birdman

### Birdman (view profile)

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.

Engdaw Chane

### Engdaw Chane (view profile)

on 20 Jul 2018
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?
Guillaume

### Guillaume (view profile)

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 <
Engdaw Chane

### Engdaw Chane (view profile)

on 20 Jul 2018
Birdman and Guillaume, Thank you!

Sign in to comment.