how to define a while statement that when the variable equals a numerical value, ends the code?
    1 view (last 30 days)
  
       Show older comments
    
    bilgesu ak
 on 19 Jan 2016
  
    
    
    
    
    Commented: bilgesu ak
 on 19 Jan 2016
            Hi,
I want to write a while condition that when variable A gets a numerical value inside the loop, ends the code, otherwise continues to the code...
How can I write this while condition?
Thansks in advance,
Regards...
0 Comments
Accepted Answer
  Walter Roberson
      
      
 on 19 Jan 2016
        while ~exist('A', 'var') && ~isnumeric(A)
   ...
end
This will continue to loop until A is assigned a value and the value is numeric.
The common kinds of values that are not numeric include logical values, character strings, structures, cell arrays, function handles, graphics objects (R2014b or later), and various other kinds of objects.
3 Comments
  Walter Roberson
      
      
 on 19 Jan 2016
				while ~exist('A', 'var') || ~isnumeric(A) || isempty(A)
 ...
end
You would not need to initialize A at all
[] is type double and so is considered a numeric value. However I have added that as a condition.
More Answers (1)
  Titus Edelhofer
    
 on 19 Jan 2016
        Hi,
I understand the "get's value" is meant as "being not empty" ...?
A = [];
while isempty(A)
   % do something, e.g.
   A = 42;
end
Titus
2 Comments
  Titus Edelhofer
    
 on 19 Jan 2016
				Or, if you want to run while it's not a specified value:
A = 10;
while A~=1
   % do something, e.g.
   A = A - 1;
end
Titus
  Walter Roberson
      
      
 on 19 Jan 2016
				And be careful, if your "specified value" is not an integer then it might be difficult to match it exactly due to floating point precision issues.
See Also
Categories
				Find more on Logical in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

