matlab中的for循环
嗨,我有下面的代码,我相信索引错误,所以我没有得到我要找的答案matlab中的for循环,matlab,optimization,for-loop,linear-programming,Matlab,Optimization,For Loop,Linear Programming,嗨,我有下面的代码,我相信索引错误,所以我没有得到我要找的答案 Diesel_matrix = xlsread('test_diesel.xlsx','Sheet2'); Diesel_supply = Diesel_matrix(:,1); % Power output of diesel generator hourly_cost = Diesel_matrix(:,2); % Diesel cost of running genreator at that output f
Diesel_matrix = xlsread('test_diesel.xlsx','Sheet2');
Diesel_supply = Diesel_matrix(:,1); % Power output of diesel generator
hourly_cost = Diesel_matrix(:,2); % Diesel cost of running genreator at that output
for z = 1:21
A = [-PV_supply -WT_supply -Diesel_supply(z)*ones(24,1)];
f = [CRF_PV*CC_PV; CRF_WT*CC_WT; (CRF_Diesel_generator*CC_Diesel)+sum(hourly_cost(1:z))] ;
b = -Demand;
[x,fval,exitflag] = linprog(f,A,b,[],[],lb,ub)
end
我试图只循环矩阵A的第三列。
我想在矩阵A的每一行中循环“Diesel_supply”中的所有行
目前,代码适用于21组x输出,但第3列为第1、2、3行等,直至“柴油供应”的第21行。当我试图得到它的第1和第2行,第3和第4等第21行的“柴油供应”。
这将允许我根据@user643469和我在聊天中的对话(参见评论部分的链接)检查“Diesel_Supply”中的所有元素,然后查看linprog的文档,我认为您需要将每个z迭代的结果存储在数据结构中,然后在循环完成后选择最佳的 据我所知,生成器有21种不同的模式,您可以在其中运行,它受到24种不同的约束。每种模式都会稍微改变常数 而不是
[x,fval,exitflag] = linprog(f,A,b,[],[],lb,ub)
使用
循环完成后,您将看到一个尺寸为4x21的结果矩阵,其中第一列包含x值,第二列包含fval值,第三列包含exitflag值。然后,您可以通过此“结果”矩阵确定21种模式中的哪种模式可用于运行发电机。@user643469——我假设PV_和WT_电源为常数矩阵?它们是什么尺寸?听起来好像代码一直工作到元素22,然后就崩溃了。元素22是否可能显示导致错误的输入?问题是我需要A的每一行分别说明“Diesel_supply”列中的21个值。但是,我不知道如何对for循环和“A”进行编码/索引,因为第1行和第2行的大小都是1个元素,而第3行(其值取自“Diesel_矩阵”)是“Diesel_矩阵”第1行和第21行之间的任何可能值因此,我试图单独计算每个值,同时我也需要这样做,我可以访问并输出最佳的x值(大小(x)=3),并且能够知道哪个是“z”产生这些最佳pontsPV_供应和WT_供应的24行中的每一行的值都是24x1。导致所有这些问题的原因是我知道PV_供应和WT_供应中的值,但我不知道柴油_供应中的值-我所知道的是,它们可以是21个不同数字中的任何一个,并且可能会不同(可能)对于24行中的每一行
val = linprog(f,A,b,[],[],lb,ub)
results(z) = val;