0

私は次のコードを持っています

for i = 1:8760
    A = [PVtech(i,:) WTtech(i,:)];
    b = demand(i);
    f = [CRF * PVtechcost(i,:) .* PVcap(i,:) ./ PVtech(i,:) CRF*WTtechcost(i,:) .* WTcap(i,:) ./ WTtech(i,:)];
    x(i) = linprog(f, A,b,[], [], lb);
end

8760データセットを最適化しようとしてlinprogいますが、各行のループを実行できないようです。
実行すると、 `Aのサイズは1x30になります(8760 x 30の場合)。

誰かが私が間違ってコーディングした場所を見ていますか?

4

1 に答える 1

1

はい、実行するたびに、Aを単一の行で上書きしています[PVtech(i、:) WTtech(i、:)]

これを試してください:A = [A; PVtech(i,:) WTtech(i,:)];つまり、垂直連結

事前割り当てを使用すると、コードは次のようになります。

numRows = 8760;
A = zeros(numRows, 30);

for i = 1:numRows

    A(i,:) = [PVtech(i,:) WTtech(i,:)];

    b = demand(i);

    f = [CRF*PVtechcost(i,:).*PVcap(i,:)./PVtech(i,:) CRF*WTtechcost(i,:).*WTcap(i,:)./WTtech(i,:)];

    x(i) = linprog(f, A,b,[], [], lb);

end
于 2012-07-03T15:30:36.763 に答える