a = b<0
    8 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
What is the meaning of this line?
...
a = b<0;
c = 3*a;
...
Is a IF condition?
0 Kommentare
Akzeptierte Antwort
  Voss
      
      
 am 22 Jan. 2023
        
      Bearbeitet: Voss
      
      
 am 22 Jan. 2023
  
      a = b<0;
checks if b is less than 0 and stores the result in a.
If b is a scalar: if b is less than 0, then a will be true; otherwise a will be false.
If b is a non-scalar array: a will be a logical array the same size as b, with each element being true or false, depending on whether the corresponding element in b is less than 0 or not.
Examples:
b = 2;
a = b<0 % false
b = -2;
a = b<0 % true
b = 0;
a = b<0 % false
b = randn(3) % non-scalar array
a = b<0 % 3-by-3 logical array, true where b<0 and false elsewhere
Then the next line
c = 3*a;
multiplies a by 3 and stores it in c, so c will be an array the same size as a, with the value 3 where a is true and the value 0 where a is false.
Examples:
b = 2;
a = b<0; % false
c = 3*a
b = -2;
a = b<0; % true
c = 3*a
b = 0;
a = b<0; % false
c = 3*a
b = randn(3) % non-scalar array
a = b<0 % 3-by-3 logical array, true where b<0 and false elsewhere
c = 3*a
0 Kommentare
Weitere Antworten (1)
  Torsten
      
      
 am 22 Jan. 2023
        
      Bearbeitet: Torsten
      
      
 am 22 Jan. 2023
  
      "a" is a logical variable.
It is set to "true" (=1) if b<0, else it is set to "false" (=0).
The next operation c = 3*a works as if "a" was a double variable.
Thus c = 3*1 = 3 if "a" was "true", else c = 3*0 = 0 if "a" was "false".
0 Kommentare
Siehe auch
Kategorien
				Mehr zu Operators and Elementary Operations finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


