0

こんにちは、以下のコードで示したブルート フォース メソッドを使用しています。

PV_supply、WT_supply、Demand のサイズはすべて 48x1 です。

私がやろうとしているのは、n = 1:24 と n = 25:48 の「hourly_deficit」式を別々に計算して、「hourly_deficit」の 2 つの「セット」を出力することです。

私のコードは

for number_panels = 0:5
    for number_turbines = 0:3
      for n = 1:24:48 % 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);

end 
 end 
  end

探している結果を得るために for ループをどのように適応させるべきかについて、何らかの助けを期待していました。現状では、n = 1:24:48 の場合、実際には n = 24 までしか上がりません。

ありがとうございました

4

1 に答える 1

5

1:24:48は「1 から 24 ずつ 48 まで」を意味します1 25 49...。つまり、シリーズを続けた場合の値になります。49は定義した境界の外にあるため、 で停止します25

あなたが望むことをするための1つの解決策は次のとおりです:

for n = 1:24 % 1 by 1 to 24

    hourly_deficit_1(...,..., n)= Demand(n)-(PV_supply(n)... %# truncated
    n=n+24;
    hourly_deficit_2(...,..., n)= Demand(n)-(PV_supply(n)... %# truncated

end 

任意の日数を一般化するには、マトリックスに 4 番目の次元を追加します。3 次元は時間 (1:24)、4 次元は日です。

for h=1:24 %# hours
    for d = 1:num_days %# which day
        n = h + 24*(d-1);
        hourly_deficit_1(...,..., h, d)= Demand(n)-(PV_supply(n)... %# truncated
    end    
end 
于 2012-07-14T19:35:14.343 に答える