How does tilde remove NaN's from dataset?

7 views (last 30 days)
Given a C = m x n matrix of 1's and 0's, and a data set B = r x s with NaN's mixed in with numeric data, how do I use the tilde to remove the NaN's? I have seen this in an example:
A=B(~C,:); and it worked in the example.
I cannot recreate it in a different problem. I also cannot find any explanation in any Mathworks information that explains it.

Accepted Answer

Walter Roberson
Walter Roberson on 3 Mar 2014
You are not applying ~ to the NaNs, you are applying ~ to the matrix of 0 and 1. ~ is logical negation, so all the places in C that were 0 become "true" (1) and all the places in C that were anything else become "false" (0). That matrix of true and false is then used "logical indexing". You can read about that Steve's Blog
  1 Comment
Ralph
Ralph on 3 Mar 2014
Thank you for responding, Walter. I think that may clear up my confusion.

Sign in to comment.

More Answers (1)

Rick Rosson
Rick Rosson on 3 Mar 2014
Is this what you are trying to do?
C = isnan(B);
A = B(~C);
  1 Comment
Ralph
Ralph on 3 Mar 2014
Hi, Rick. I think the other response I received may explain my confusion on using tilde. Thank you for responding.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!