## Defining functions

### Richard (view profile)

on 8 Jan 2012
Latest activity Commented on by Walter Roberson

on 26 Sep 2016

### Chandra Kurniawan (view profile)

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.

## Products

### Chandra Kurniawan (view profile)

on 8 Jan 2012

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

Chandra Kurniawan

### Chandra Kurniawan (view profile)

on 8 Jan 2012

to evaluate this function just type :
y = feval(@f,x)

Richard

### Richard (view profile)

on 8 Jan 2012

Thanks, Chandra! :)

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

### Walter Roberson (view profile)

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.

#### 1 Comment

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.

### Junaid (view profile)

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.

Richard

### Richard (view profile)

on 8 Jan 2012

Thanks, Junaid! :)

on 21 Mar 2014
Edited by cyril

### cyril (view profile)

on 21 Mar 2014

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

surprising no one mentioned anonymous functions...

#### 1 Comment

on 21 Mar 2014

@ Cyril

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

### samy youssef (view profile)

on 11 Mar 2015
Edited by Walter Roberson

### Walter Roberson (view profile)

on 26 Sep 2016

here is a function i developed to calculate the log of any number with different base:

```function d =log_for_diff_base(myNumber,myBase)
x=log(myNumber);
y=log(myBase);
d=x/y;
end
```

Walter Roberson

### Walter Roberson (view profile)

on 26 Sep 2016

Okay... but irrelevant to the original question.

### Nikitha Challa (view profile)

on 26 Sep 2016

x = x + a/x 2 in matlab code

John D'Errico

### John D'Errico (view profile)

on 26 Sep 2016

Not a function at all. This is not even valid MATLAB code as written.

Walter Roberson

### Walter Roberson (view profile)

on 26 Sep 2016

That does not appear to be a question, and it is not an Answer to what was asked here?

If the question is to solve the equation

```x == x + a/(x^2)
```

then for finite a values, the solutions are -inf and +inf as a/(x^2) would be 0 for those values, leading to the equality -inf == -inf and +inf == +inf

#### Join the 15-year community celebration.

Play games and win prizes!

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