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

我正在尝试优化linprog8760 数据集,但似乎无法让每一行的循环都进行。
当我运行它时,我得到的大小为 1x30(当它应该是 8760 x 30 时)。

有谁看到我在哪里编码错误?

4

1 回答 1

1

是的,每次运行它时,您都会用单行 [PVtech(i,:) WTtech(i,:)] 覆盖 A

试试这个: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 回答