Defining inputs for subfunctions

4 views (last 30 days)
Hey,
I'm writing some code that involves using set inputs (that I want to be able to change easily) in multiple subfunctions.
Take the following example;
function [ output_args ] = Untitled2( input_args )
clc;
x=0:0.01:5;
plot(f(x),x,g(x),x)
end
function [f_value]=f(x)
speed=6;
f_value=0.5.*speed.*x;
end
function [g_value]=g(x)
speed=6;
g_value=(x.^2)./speed;
end
How would I go about being able to define speed only once and it being 'called up' by any and every subfunction that uses it? I tried looking into nesting but got utterly confused :/ Is there a simple way to do this?

Accepted Answer

Walter Roberson
Walter Roberson on 8 Dec 2011
function [ output_args ] = Untitled2( input_args )
speed = 6;
function [f_value]=f(x)
f_value=0.5.*speed.*x;
end
function [g_value]=g(x)
g_value=(x.^2)./speed;
end
x=0:0.01:5;
plot(f(x),x,g(x),x)
end
  3 Comments
Walter Roberson
Walter Roberson on 8 Dec 2011
Yes. But it is important that the variable to be shared be defined before you define the nested functions that use the variable.
Stephen
Stephen on 8 Dec 2011
Haha, yeah I'd literally just found that. Was trying to impliment it in my own code and was getting very confused why it wouldn't run as I couldn't see anything wrong with it. Then I had a brainwave and moved my variable to the start of my code and it worked a treat :)
Thank you very much for the help :)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!