2012-07-14 229 views
0

嗨我在下面的代码中有三维矩阵。我试图将每个“number_panels”和“number_turbines”组合的所有24个元素“n”相加。总和三维矩阵 - Matlab蛮力

我具有低于跨过第三尺寸

不总和number_panels = 0:5

for number_turbines = 0:2 

    for n = 1:24 % number of hours per day 



hourly_deficit(number_panels + 1, number_turbines + 1, n) = Demand(n) -...  
(PV_supply(n)*number_panels) - (WT_supply(n)*number_turbines); 

if hourly_deficit(number_panels + 1, number_turbines + 1, n)< 0 

      hourly_deficit(number_panels + 1, number_turbines + 1, n) = 0; 

     end 
daily_deficit(number_panels + 1, number_turbines + 1) = sum(sum(sum(hourly_deficit(:,:,:)))) 



     hourly_total_RES(number_panels + 1, number_turbines + 1, n) = PV_supply(n)*number_panels + WT_supply(n)*number_turbines; 


     if hourly_total_RES(number_panels + 1, number_turbines + 1, n) < Demand(n), 

      renewables_penetration(number_panels + 1, number_turbines + 1, n) = (hourly_total_RES(number_panels + 1, number_turbines + 1, n))/Demand(n); % ratio of renewable energy supply to demand 

     else 
      renewables_penetration(number_panels + 1, number_turbines + 1, n) = 1 ; 

     end 
      peak_deficit(number_panels + 1, number_turbines + 1,n) = max(hourly_deficit(number_panels + 1, number_turbines + 1,n)); 
    end 
+0

你是否试图计算一个3D矩阵的总和? – TJ1 2012-07-14 13:18:57

+0

以及我创建它的方式,我试图总结“n”维,所以是的,我试图总结3D矩阵 – user643469 2012-07-14 13:20:02

+0

我希望这可以工作,但它不会:daily_deficit(number_panels + 1,number_turbines + 1)= sum(hourly_deficit(number_panels + 1,number_turbines + 1),3) – user643469 2012-07-14 13:23:11

回答

1

在MATLAB总和(X)增加了矩阵X的所有元素在一个维度。 如果你想只计算一个特定的空间使用的总和:

S1=sum(X,dimension); 

其中“维”是1或2或3的3D矩阵。

如果要计算在两个维度,那么你可以这样做:

S2=sum(S1,dimension); 

其中尺寸这里是1或2

基于您的代码我觉得这是你应该做的,如果要做到这一点在for循环:在

for number_panels = 0:5 
    for number_turbines = 0:2 
     for n = 1:24 % number of hours per day 
     hourly_deficit(number_panels + 1, number_turbines + 1, n) =... 
      Demand(n) - (PV_supply(n)*number_panels) - (WT_supply(n)*number_turbines); 

     if hourly_deficit(number_panels + 1, number_turbines + 1, n)< 0 
      hourly_deficit(number_panels + 1, number_turbines + 1, n) = 0; 
     end 
     daily_deficit(number_panels + 1, number_turbines + 1) = ... 
     sum(hourly_deficit(number_panels + 1, number_turbines + 1,:)); 
    end 
end 

看 “:” 我加入到: 总和(hourly_deficit(number_panels + 1,number_turbines + 1,:));

+0

我仍然得到了与您的建议不符的相同答案。 – user643469 2012-07-14 13:32:41

+0

你的X是什么?它是一个3D矩阵吗? – TJ1 2012-07-14 13:34:15

+0

看着这个:sum(hourly_deficit(number_panels + 1,number_turbines + 1)),sum()中只有一个元素,sum对你没有任何作用。你试图这样做:sum(sum(hourly_deficit(number_panels + 1:number_turbines + 1))) – TJ1 2012-07-14 13:35:02