Question on function variables i.e. ~

1 view (last 30 days)
Seetha Rama Raju Sanapala
Seetha Rama Raju Sanapala on 17 Dec 2015
Edited: Walter Roberson on 17 Dec 2015
[~,I] = max(abs(xc));
This is code taken from an example in MATLAB. I read somewhere that ~ can be used to indicate 'don't care' variables - variables that are not required in further program.
I could have used some variable name, say a, instead of ~, and ignore a. What is the advantage if you use ~. Is it saving space by not storing the data not required?

Answers (1)

James Tursa
James Tursa on 17 Dec 2015
Edited: James Tursa on 17 Dec 2015
It is mainly to avoid cluttering your workspace with variables you don't need in a "neat" manner. E.g.,
[~,I] = max(abs(xc));
does the same thing as:
[M,I] = max(abs(xc));
clear M
In both cases, the first output argument is still calculated and returned by the function. Using ~ simply saves you, the programmer, the trouble of clearing unwanted variables manually (MATLAB will do it for you in the background).
  2 Comments
Seetha Rama Raju Sanapala
Seetha Rama Raju Sanapala on 17 Dec 2015
@James Tursa, if I understood you correctly, it will create some variable (unknown to us) for the output but will immediately clear it and it is not accessible any more. Thanks for the clarification. Has it been documented anywhere in MATLAB? I just want to know how to look for such information! Thanks again!

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!