我有以下代码
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,但似乎无法对每一行执行循环。
当我运行它时,我得到一个大小为1x30的`A (当它应该是8760x30的时候)。
有没有人看到我哪里写错了?
发布于 2012-07-03 23:30:37
是的,每次运行它时,都会用单行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);
endhttps://stackoverflow.com/questions/11314094
复制相似问题