0

“下标分配尺寸不匹配。' 运行 linprog 编码时。

我的代码是

for M = 1 : size(PV_output,1)
for N = 1 : size(WT_output,2)


    f(:,M:N ) = [((CRF*CC_PV(M)/PVenergy(M)+OM_PV)); ((CRF*CC_WT(N))/WTenergy(N))+OM_WT];  % Objective function coefficients

    %A(:,:) = [-PV_output(:,:,K)  -WT_output(:,:,L)];
    A (:,M,N) = [-PV_output(:,M)  -WT_output(:,N) ];

    b(:,:)  = -Demand(:);

    lb = zeros(2,1);

    ub = [max_PV_area/PV_area; max_WT_area/WT_area]';

end
end 
[x, fval, exitflag] = linprog(f,A,b,[],[],lb,ub)

PV_output 为 8760x1x27,WT_output 为 8760x1x3

我试图在此代码中为 27 和 3 PV 和 WT 的所有组合找到下面的“f”系数有谁知道如何索引“f”来做到这一点?

谢谢

4

1 回答 1

0

您的第一个问题是您需要获取矩阵第三维的大小:

for M = 1 : size(PV_output,3) %# <---3, not 1  
    for N = 1 : size(WT_output,3) %# <---3, not 1 

接下来,你不想要(:,M:N),而是(:,M,N)

f(:,M,N)

可能还有更多。这应该让你开始;并使用调试器查看矩阵的尺寸大小,并确保它们是您认为应该的尺寸。例如,您不能将不同大小的矩阵相加,因此请确保维度相同。

于 2012-06-21T18:16:12.560 回答