how do I calculate all values in for loop?
    5 views (last 30 days)
  
       Show older comments
    
Hello.  please help me
I want to calculate in each x = [0, 2, 5, 7, 8, 9, 10 ]   ----->     Output P equation. 
I tried to write in below code. BUT when its only x = 10,  result calculated. I want to calculate all x values. 
How do I do?
PLEASE
m-file
function [Tc, P] = myfun1(Ppv_rated, x,  G , Gref, Kt, Tref, Tamb)
for x = [0,2,5,7,8,9,10]
Tc = Tamb + (0.0256 * G);
P = (Ppv_rated * x) .* (G/Gref).*(1 + Kt*(Tc - Tref));
end
end
COMMAND WINDOW
>> Ppv_rated = 250;
>> G = [5.75, 6, 6.365, 6.5, 6.185, 5.75, 5, 4.8, 5.5, 6.18, 6.15, 5.8];
>> Gref = 1000;
>> Kt = -0.485;
>> Tref = 25;
>> Tamb = [25.63, 26.7, 26.610, 25.46, 24.9, 24.01, 23.16, 23.01, 23.54, 23.78, 24.45, 25.3];
>> [Tc, P] = myfun1(Ppv_rated, x,  G , Gref, Kt, Tref, Tamb)
RESULT 

0 Comments
Answers (2)
  KSSV
      
      
 on 10 Sep 2020
        
      Edited: KSSV
      
      
 on 10 Sep 2020
  
      You need to save each value in aloop.
function [Tc, P] = myfun1(Ppv_rated, x,  G , Gref, Kt, Tref, Tamb)
m = numel(x); 
n = numel(Tamb) ; 
Tc = zeros(m,n) ;
P = zeros(m,n) ; 
for i = 1:length(x)
Tc(i,:) = Tamb + (0.0256 * G) ;
P(i,:) = (Ppv_rated * x(i)) .* (G/Gref).*(1 + Kt*(Tc(i,:) - Tref));
end
end
You need not to use a loop and you can use all vector operations. 
function [Tc, P] = myfun1(Ppv_rated, x,  G , Gref, Kt, Tref, Tamb)
Tc = Tamb + (0.0256 * G) ;
PP = ((Ppv_rated * x) .* ((G/Gref).*(1 + Kt*(Tc - Tref)))')';
end
8 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


