“订阅分配维度不匹配。”在运行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”这样做?
谢谢
答案 0 :(得分: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)
可能还有更多。这应该让你开始;并使用调试器查看矩阵尺寸的大小,并确保它们是您认为应该是的。例如,您无法将不同大小的矩阵一起添加,因此请确保尺寸相同。