Matlab linprog错误-A中的行数必须与b中的元素数相同
嗨,我有以下linprog优化代码Matlab linprog错误-A中的行数必须与b中的元素数相同,matlab,linear-algebra,mathematical-optimization,linear-programming,Matlab,Linear Algebra,Mathematical Optimization,Linear Programming,嗨,我有以下linprog优化代码 for j = 1:2 for i = 1:24 for K = 1:3 for M = 1:3 PV_output(:,:,:) = real(PV_power_output(:,:,:)); WT_output(:,:,:) = WT_power_output(:,:,:); PVenergy = sum(sum(PV_output(:,:,1))); WTenergy
for j = 1:2
for i = 1:24
for K = 1:3
for M = 1:3
PV_output(:,:,:) = real(PV_power_output(:,:,:));
WT_output(:,:,:) = WT_power_output(:,:,:);
PVenergy = sum(sum(PV_output(:,:,1)));
WTenergy = sum(sum(WT_power_output(:,:,1)));
f= [((CRF*CC_PV)/PVenergy)+OM_PV; ((CRF*CC_WT)/WTenergy)+OM_WT];
A(:,:,:) = [-PV_output(:,:,K) -WT_output(:,:,M)];
b(:,:) = -Demand(j,i);
lb = zeros(2,1);
ub = [max_PV_area/PV_area max_WT_area/WT_area]';
end
end
end
end
x(:,j,i,K,M) = linprog(f,A,b,[],[],lb,ub)
其中,WT_输出和PV_输出为三维365x24阵列,需求为365x24
我试图为365x24需求元素和每个维度优化x1和x2,以便找到最佳的K和M组合
然而,由于代码当前的状态,我不断得到错误-A中的行数必须与b中的元素数相同
有人有什么建议吗?说:
x=linprogf,A,b求解最小f'*x,使得A*x≤ b
显然,A中的行数必须与b中的元素数相同,因为A可以是矩阵,而b是向量
如果你的问题是为什么我没有合适的尺码?只要试着在每一步打印向量/矩阵的大小,就可以看出错误在哪里。经常会发生这样的情况,即您忘记转置矩阵。例如,您的工作区对a和B的大小有什么看法?克里斯·贾姆斯:对。。这件事也发生在我身上。。我在执行操作时忘了转置矩阵。通过放置断点,尝试在每个步骤检查工作区。这可能会有所帮助您好,您能否尝试提供一个较短的代码以了解您遇到的问题?您也可以很好地缩进它。如果您的问题只是linprog的使用,那么所有for循环都是无用的,您应该问一个与此问题完全相关的问题。然后,当您将有一个工作代码时,请随时回来询问有关优化的问题。