Defining function handles in MATLAB

조회 수: 1,197 (최근 30일)
Richard
Richard 2012년 1월 8일
댓글: Voss 2023년 2월 4일
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.
  댓글 수: 2
Leia Sofia Mendez
Leia Sofia Mendez 2017년 7월 26일
편집: Walter Roberson 2017년 7월 26일
This was the code I was trying to write:
a= 0.0009
a= convtime([1],'samples','seconds')
This code gave an error saying that my function (convtime) was undefined. How you define a function in MATLAB?
Walter Roberson
Walter Roberson 2017년 7월 26일
Leia Sofia Mendez:
You should go to that link, and click the download button, and download the .zip file. You should unzip to a directory that is not under your MATLAB installation directory. You would then use pathtool in MATLAB to add that directory to your MATLAB path.

댓글을 달려면 로그인하십시오.

채택된 답변

Chandra Kurniawan
Chandra Kurniawan 2012년 1월 8일
편집: MathWorks Support Team 2019년 5월 22일
Hi, Richard.
To evaluate f(x) at different values of x, you can create an .m file and write this code:
function y = f(x)
y = 2 * (x^3) + 7 * (x^2) + x;
If you save the file under the name 'f.m', you can run the function by typing this code in the Command Window or a separate .m file.
x = randi(7);
y = f(x)
The randi function above generates a 1-by-5 row vector of random integers between 1 and 10. The values returned by f are stored in a 1-by-5 row vector y.
For more information about creating functions, see:
You can create a handle to the function f with an @ sign. For example, create a handle named myHandle as follows:
myHandle = @f;
Now you can run f indirectly by using its handle.
y = myHandle(x)
For more information about function handles, see:
  댓글 수: 5
Piyush Gade
Piyush Gade 2022년 2월 4일
Whatever this is, this doesn't work.
Mark Jackson
Mark Jackson 2022년 10월 11일
I recommend clicking 'Getting Started.'

댓글을 달려면 로그인하십시오.

추가 답변 (6개)

Walter Roberson
Walter Roberson 2012년 1월 8일
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
Salaheddin Hosseinzadeh
Salaheddin Hosseinzadeh 2014년 3월 13일
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
Junaid 2012년 1월 8일
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.

cyril
cyril 2014년 3월 21일
편집: cyril 2014년 3월 21일
> f = @(x) 2*x^3+7*x^2+x;
> f(0)
0
surprising no one mentioned anonymous functions...
  댓글 수: 1
Salaheddin Hosseinzadeh
Salaheddin Hosseinzadeh 2014년 3월 21일
@ Cyril
Walter did, just make sure you checked the other answers and comments!

댓글을 달려면 로그인하십시오.


samy youssef
samy youssef 2015년 3월 11일
편집: Walter Roberson 2016년 9월 26일
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
  댓글 수: 1
Walter Roberson
Walter Roberson 2016년 9월 26일
Okay... but irrelevant to the original question.

댓글을 달려면 로그인하십시오.


Nikitha Challa
Nikitha Challa 2016년 9월 26일
x = x + a/x 2 in matlab code
  댓글 수: 2
John D'Errico
John D'Errico 2016년 9월 26일
편집: John D'Errico 2016년 9월 26일
Not a function at all. This is not even valid MATLAB code as written.
Walter Roberson
Walter Roberson 2016년 9월 26일
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

댓글을 달려면 로그인하십시오.


Karima Benkhlil
Karima Benkhlil 2023년 2월 4일
f(x) = exp(x^2 ) (x3+4x+1) how to define it

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by