MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Richard on 8 Jan 2012

How might I define a function handle?

For example, I want to define a function f(x)=2*x^3+7*x^2+x

I want MATLAB to evaluate f(x) at random values x. I have heard of feval and fhandles, but I don't know how to do it.

Thanks.

Answer by Chandra Kurniawan on 8 Jan 2012

Accepted answer

Hi, Richard.

First, you need to create a new m-file then type this code

function y = f(x) y = 2 * (x^3) + 7 * (x^2) + x;

Save with filename 'f.m'

Then create a new m-file and type this code

x = randi(7); y = f(x)

**randi** will generate random number

Salaheddin Hosseinzadeh on 13 Mar 2014

The problem or lets say the dificulty of this code is that this couple of lines should be saved as a function and I personally don't wanna do that for a simple function like this! or even complicated ones!

Not my favorite way of defining a function

Answer by Junaid on 8 Jan 2012

Dear Richard,

To define a function in matlab you can do following syntax of given function:

function n = F(x)

n= 2*x^3+7*x^2+x;

that is it. You can put end at the end of function. But it is also acceptable not to put to various matlab versions. If you put end for one function then you have to put for all function in single m file.

then you can generate random numbers, either integer or double, and can get the values of this function.

Answer by Walter Roberson on 8 Jan 2012

Function handle version:

f = @(x) 2*x^3+7*x^2+x;

Then f is already the function handle, and you can call f(3.7) (for example)

There is no need to use feval() for this, but you could.

Salaheddin Hosseinzadeh on 13 Mar 2014

I rather this anonymous way of defining a function! It's way easier. I also know another way of doing this, surprisingly nobudy mentioned that so far! lol I'm gonna put it in the answers.

Answer by Salaheddin Hosseinzadeh on 13 Mar 2014

This is anoher alternative of defining a fucntion, almost as easy as anonymous way of defining it

f=inline('x^2+y^2-25','x','y') % f(x,y) = x^2+y^2-25

This is gonna be the resul of this code

f(x,y) = x^2+y^2-25

Good Luck MATLAB lovers! :)

Answer by cyril on 21 Mar 2014

Edited by cyril on 21 Mar 2014

> f = @(x) 2*x^3+7*x^2+x; > f(0) 0

surprising no one mentioned anonymous functions...

Salaheddin Hosseinzadeh on 21 Mar 2014

@ Cyril

Walter did, just make sure you checked the other answers and comments!

Answer by Pratik Bhattarai on 7 May 2014

i want to solve this function M*D^(X)|+C*D(x)+K*X=F(T); to get response X(T). for any value of m c k & ft....

## 0 Comments