Creating a Nested Function
10 views (last 30 days)
Show older comments
I am trying to create a nested function, but I get an error saying that the variable that I've chosen is already being used even though that's the variable that I need as an input for my second function to compute the equation.
function [root,numit,err] = newton(x,tol,fx,ddx)
err = abs(fx(x));
numit = 0;
while(err > tol && numit < 1000);
numit = numit + 1;
x = x - fx(x)/ddx(x);
err = abs(fx(x));
end
if (numit == 1000)
disp('Maxed out on iterations.')
err;
end
root = x;
function root = x
dx = 0.001;
for i = 2:length(x)-1;
fx = exp(cos(x) + sin(x)) - 2;
dxf=(diff(2:i)-diff(1:(i-1)))/2*dx';
end
root = dxf(x);
end
end
root is my desired output and it is denoted by x. I keep getting an error about x being used as a variable and in the nested function in the same scope. What am I doing wrong?
0 Comments
Answers (1)
Azzi Abdelmalek
on 29 Mar 2013
Edited: Azzi Abdelmalek
on 29 Mar 2013
Change the name of your nested function, because you are using x as function name and variable
function root = new_name(x)
7 Comments
See Also
Categories
Find more on Graphics Performance in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!