How to declare a function having bounds ?
    13 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    David Webb
 el 8 de Feb. de 2015
  
    
    
    
    
    Comentada: David Webb
 el 9 de Feb. de 2015
            example-
    f(x)= 0 x<0
        x 0<x<1
       -1 x>1
2 comentarios
  David Young
      
 el 9 de Feb. de 2015
				
      Editada: David Young
      
 el 9 de Feb. de 2015
  
			What is supposed to happen if x=0 or x=1? I'm guessing you mean
0 if x < 0
x if 0 <= x <= 1
-1 if x > 1
Respuesta aceptada
Más respuestas (2)
  David Young
      
 el 9 de Feb. de 2015
        I would go for a vectorised function:
function x = clipZeroOne(x)
x(x < 0) = 0;
x(x > 1) = -1;
end
Test examples
clipZeroOne(9)
clipZeroOne(0.5)
clipZeroOne(-0.5)
clipZeroOne([-Inf -3 0 0.2 0.9 1 15 Inf])    % apply to a vector
0 comentarios
  Erik S.
      
 el 8 de Feb. de 2015
        
      Editada: Guillaume
      
      
 el 9 de Feb. de 2015
  
      function f=fcn(x)
 if x<0  
  y = 0;  
 else if x>=0 && x<1  
  y = x;  
 else if x>1
  y = -1;
 end
In the example f(0) = x.
2 comentarios
  David Young
      
 el 9 de Feb. de 2015
				
      Editada: David Young
      
 el 9 de Feb. de 2015
  
			This answer has multiple issues, as they like to say on Wikipedia.
- What happens if x is exactly equal to 1?
- The output variable is f but you assign the result to y.
- "else if" isn't legal MATLAB.
- The "{} Code" button makes the code display clearly.
I guess what you meant was this
function y = fcn(x)
if x<0
  y = 0;
elseif x<1   % it must be greater than or equal to 0
  y = x;
else
  y = -1;    % it must be greater than or equal to 1
end
end
Ver también
Categorías
				Más información sobre Whos en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



