MATLAB: Making a Function file which calls another function file

function calling

I have this gaussian2 m file:
function [g] = gaussian2(t, tau)
g = (1/sqrt(2*pi)) .*(1/tau) .* exp(- (t .^2) / (2 * tau^2));
end
I want to make another function m file of RMStau:
sqrt( integral( @(t) t.^2 .* gaussian2(t,tau), -inf, inf ) / integral( @(t) gaussian2(t,tau), -inf, inf ))
How do I make a RMStau m file as a function of my gaussian2 input?
Thanks

Best Answer

I am not sure if this is want you are asking, but you can pass a function handle as input. A mini example would be
function y = eval_myfun(h_fun,input)
y = h_fun(input);
end
and then use it as
f =@(x)sin(x);
y = eval_myfun(f,2) % this will evaluate f at x == 2
In your case, you would first generate handle to a purely time-dependent function
h_gauss = @(t)gaussian2(t,tau);
and then pass h_gauss as handle to RMStau.
For RMS however, I don't see why you wouldn't simply do this in two steps.
1. Evaluate function y = gaussian2(t,tau);
2. compute RMS