こんにちは、「インデックスがマトリックスの次元を超えています」というエラーを出し続けるこのコードがあります。「battery_capacity」マトリックス = 2 の値を使用して、h=1、d= 1 で 24 個の「h」と 3 個の「d」のループを開始しようとしていますが、これはマトリックスのサイジングに関して矛盾しているようです。どんな助けでも大歓迎です!「h-1」が問題を引き起こしている可能性があります。"battery_capacity" を 2 回目に書き込むとエラーが発生する 私のコードは idx_number_panels = 1:length(number_panels) の PV パネル ユニットの % 範囲です。
for number_turbines = 0:2 % range of wind turbine units examined
for number_batteries = 1:50 % range of battery units examined
for h=2:25 %# hours
for d = 1:number_of_days %# which day
battery_capacity(idx_number_panels, number_turbines+1, ...
number_batteries, 1, 1) = 2*number_batteries;
%% Charging
battery_charging(idx_number_panels, number_turbines+1, ...
number_batteries, h, d) ...
= hourly_surplus(idx_number_panels, number_turbines+1, ...
number_batteries, h, d) ...
+ battery_capacity(idx_number_panels, number_turbines+1, ...
number_batteries, h-1,d);
end
end
end
デバッガ
error line 134
battery_charging(idx_number_panels, number_turbines+1 ,number_batteries, h,d) = hourly_surplus(idx_number_panels, number_turbines+1 ,number_batteries, h,d)...
K>> sz = size(battery_charging)
sz =
1 1 1 2
K>> index = [idx_number_panels, number_turbines+1 ,number_batteries, h-1,d]
index =
1 1 1 1 2
K>> ndims(battery_charging)
ans =
4
コマンドラインで「battery_charging」を実行する
>> battery_charging
battery_charging(:,:,1,1) =
0
battery_charging(:,:,1,2) =
0