Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中的for循环_Matlab_Optimization_For Loop_Linear Programming - Fatal编程技术网

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;