Piece-wise handle function help

3 vues (au cours des 30 derniers jours)
Steve
Steve le 8 Août 2012
Hello Dear Experts,
Consider I have a piece wise function and I want to create it using handle @ and pass it to another function, please guide me how to do this.
For example, how to define: f = @(x) x^2 if x<0, -x^2 if x>0
and to pass it to another function: func(f) After passing the function to the func, I need to be able to operate with it
for example:
function res = func(f)
res = f(5);
end

Réponses (2)

per isakson
per isakson le 9 Août 2012
Modifié(e) : per isakson le 9 Août 2012
Try
>> cssm
ans =
-25
where in one m-file, cssm.m
function y = cssm
y = foo( @piece_wise );
end
function r = piece_wise( x )
if x < 0
r = x*x;
else
r = -x*x;
end
end
function r = foo( f )
r = f(5);
end
The three function may be defined in separate m-files

Matt Fig
Matt Fig le 9 Août 2012
It is not terribly efficient, but can be done:
f = @(x) (x.^2).*(x<0)-(x.^2).*(x>=0);
x = -10:.001:10;
plot(x,f(x))
  1 commentaire
Andrei Bobrov
Andrei Bobrov le 9 Août 2012
f1 = @(x)-sign(x).*x.^2

Connectez-vous pour commenter.

Catégories

En savoir plus sur Language Fundamentals dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by