Info

# How do I call a function within another function AND How do I input known variables in function?

1 view (last 30 days)
MUNKHBOLOR BAIGALI on 10 Sep 2020
Closed: MATLAB Answer Bot on 20 Aug 2021
Hello. I want to write below equation in matlab code. in this problem unknown variable is x = optimalsize(0 , 2 , 5, 7, 8 , 9 , 10kW) and others known. BUT I have 3 questions.
1. how to input known variables in this function?
2. how to call Tc function in P function ?
3. how to know which number is optimal size
I tried to write below equation in matlab code. but it doesn't work. function [P, Tc] = stfunction(Ppv_rated, x, G , Gref, Kt, Tref, Tamb)
Tc = @ndfunction;
P = (Ppv_rated * x) * (G/Gref)*(1 + Kt*(Tc - Tref));
function Tc = ndfunction(Tamb, G)
Tc = Tamb + (0.0256 * G);
disp(P)
end
end

Monisha Nalluru on 16 Sep 2020
For the above question
1. The known values are sent into function as parameters
2. The function Tc can be called directly or can be called using function handle
Please refer functions, nested function, anonymous function documentation for better understanding
Since the problem is to find optimal size for different x values. We first need to iterate through x and calculate the Ppv-out
As example
x=[0,2,5,7,8,9,10]; % x-values given
ppv_out=[]; % output gor each x-value
% declare the ppv_rated,G,Gref,kt,Tref,Tamb
for i=1:length(x)
ppv_out(i)=stfunction(ppv_rated,x,G,Gref,kt,Tref,Tamb);
end
function [P] = stfunction(Ppv_rated, x, G , Gref, Kt, Tref, Tamb)
Tchandle = @ndfunction; % function handle created
Tc=Tchandle(Tamb,G); % Tc value is calculated
P = (Ppv_rated * x) * (G/Gref)*(1 + Kt*(Tc - Tref)); % ppv_out calcuated
function Tc = ndfunction(Tamb, G)
Tc = Tamb + (0.0256 * G);
end
disp(P) % display the calcualted P value
end

R2018b

### Community Treasure Hunt

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

Start Hunting!