我有以下代码
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
我正在尝试优化linprog
超过8760数据集,但似乎无法让每一行循环。
当我运行它时,我的尺寸为'A为1x30(当它应该是8760乘30)。
有没有人看到我错误编码的地方?
答案 0 :(得分: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