# How to assign NaN to consecutive elements of a vector, in intervals defined by a matrix

1 view (last 30 days)
Paramonte on 5 Jun 2020
Commented: Tommy on 7 Jun 2020
Hello there!
supose we have a vector x=1:12
and we have a controling matrix as this:
z=[2 4; 6 8; 10 11]
We want to assign NaN in x in the intervals in z for 2 to 4, 6 to 8 and 10 to 11, in order to get:
x_new= [ 1 NaN NaN NaN 5 NaN NaN NaN 9 NaN NaN 12]
##### 2 CommentsShow 1 older commentHide 1 older comment
Paramonte on 5 Jun 2020
Dear Mohammad, you are right. I have edited the original question and corrected the values.
Thank you

Tommy on 5 Jun 2020
Try this:
N = numel(x);
idx = any((1:N >= z(:,1) & 1:N <= z(:,2)));
x(idx) = NaN;
##### 2 CommentsShow 1 older commentHide 1 older comment
Tommy on 7 Jun 2020
Happy to help!

### Categories

Find more on Logical in Help Center and File Exchange

R2019a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!