How does tilde remove NaN's from dataset?

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

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

Thank you for responding, Walter. I think that may clear up my confusion.

Sign in to comment.

More Answers (1)

Is this what you are trying to do?
C = isnan(B);
A = B(~C);

1 Comment

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

Asked:

on 3 Mar 2014

Commented:

on 3 Mar 2014

Community Treasure Hunt

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

Start Hunting!