Problem 690. Remove the two elements next to NaN value
The aim is to remove the two elements next to NaN values inside a vector.
For example:
x = [6 10 5 8 9 NaN 23 9 7 3 21 43 NaN 4 6 7 8]
The output y will be:
y = [6 10 5 8 9 7 3 21 43 7 8]
Nan values and the 2 next elements after the NaN (23-9 and 4-6) have been removed.
There will be always NaN values in the input vector followed by at least 2 integers.
Solution Stats
Problem Comments
-
6 Comments
i think the question may be worded incorrectly. there is no adding
Exact . Thanks for the remark , I replaced the "add" word by "remove"
Problem name “Remove the two elements next to NaN value” is confusing. In a 1d array the first and last element have 1 element next to them while other elements have 2 elements next to them. The name would imply that we are to remove one element preceding and one element following a NaN however in the problem description we are told to remove the two elements following the NaN. I would argue that the element preceding the NaN is more “next to” the NaN than the element two elements away. Name should be changed to “Remove the two elements following a NaN value”.
The term "next to NaN" would generally be considered as the one right before and the one right after NaN, if existing. Also the problem failed to say that NaN themselves need to be removed.
JF & LD, I agree with both of your comments. Furthermore, it is unfortunate that in the example the first NaN has digit "9" both immediately preceding it and two elements after it, making the procedure to get the result in that neighbourhood ambiguous.
not so easy problem. Took a lot of time for thinking!
Solution Comments
Show commentsProblem Recent Solvers651
Suggested Problems
-
1365 Solvers
-
Is my wife right? Now with even more wrong husband
1322 Solvers
-
225 Solvers
-
285 Solvers
-
Create matrix of replicated elements
378 Solvers
More from this Author30
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!