0
我有以下代碼「for」循環不循環
我試圖優化linprog
在8760點的數據集,但似乎無法得到循環去爲每一行。
當我運行它時,我得到A的大小爲1x30(當它應該是8760乘30)。
有沒有人看到我錯誤地編碼了?
我有以下代碼「for」循環不循環
我試圖優化linprog
在8760點的數據集,但似乎無法得到循環去爲每一行。
當我運行它時,我得到A的大小爲1x30(當它應該是8760乘30)。
有沒有人看到我錯誤地編碼了?
是,每次你運行它要覆蓋一個與單行時間[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
感謝丹但是,讓我 – user643469
未定義的變量錯誤嘗試循環之前預分配:'A =零(8760,30)',並以'A(我,:) = [PVtech(我,:) WTtech(我,:)]' – Amro
是的,你必須d eclare第一個,所以你可以嘗試A = []但它更快,因爲@Amro已經指出要預先分配,所以也許A =零(8760,30) – Dan