MATLAB Answers

Function, input number, return a value

1,010 ビュー (過去 30 日間)
Eric 2015 年 4 月 29 日
コメント済み: Eric 2015 年 4 月 29 日
Write a small function which takes as inputs; a number a and a function g(x), and returns (a, g(a)). Note that printing is not the same as returning a value. Use the function g(x) = 2x 2 and a = 4 to test your function.
So my function right now looks like this.
function [a g(x)] = mysmallfunction(x)
a = x;
g(x) = 2*x.^2;
And I'm calling it like this:
[a g(x)] = mysmallfunction(4)
I get the error "Undefined function or variable 'mysmallfunction'."
But also I'm using a specific equation in 2x^2. How do I make it work for any equation.


Guillaume 2015 年 4 月 29 日
編集済み: Guillaume 2015 年 4 月 29 日
Your tutor must have taught you about function handles for you to solve this problem.
As per the question, the function you have to write takes two inputs, a number and a function (see function handles) and returns two outputs, the original number and another number. Therefore you must have two variable names before the = in your function declaration and two variable names in the brackets of your function declaration.
Note that g(x) is not a valid variable name.
To get you started, the following declaration would work:
function [a, ga] = mysmallfunction(x, g)
  5 件のコメント
Eric 2015 年 4 月 29 日
Aha! Thankyou I finally pieced all your hints together! Appreciate it


その他の回答 (1 件)

Pratik Bajaria
Pratik Bajaria 2015 年 4 月 29 日
You just have to change a few things and it must work. Atleast it does for me. ;-) you need not write g(x) literally.
function [a g] = mysmallfunction(x)
a = x;
g = 2*x.^2;
Call it like this:
[a g] = mysmallfunction(4)
Check and let me know if it works for you. I assume, i have got your problem right.
Regards, Pratik
  2 件のコメント
Guillaume 2015 年 4 月 29 日
Eric's comment moved here:
Yes there is two inputs.
Pratik your solution would work for a defined equation.



Community Treasure Hunt

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

Start Hunting!

Translated by