2012-07-13 88 views
0

嗨,我用蛮力方法合作,研究“面板”和“涡轮”的可能组合MATLAB蛮力索引

我的代码是

for number_panels = 0:5 

for number_turbines = 0:10 


    for n = 1:24 % number of hours per day 



deficit(n) = Demand(n) - (PV_supply(n)*number_panels) -... 
(WT_supply(n)*number_turbines);% hourly power deficit 

     if deficit(n)<0 

      deficit(n) = 0; 

     end 

我上面的问题是,我尚未计算出此代码的正确索引。

我想要做的是找到“number_panels”,“number_turbines”和“n”的“赤字”。就目前而言,我只能找到最后一个循环的“赤字”。 如何编码,以便我可以选择访问第n行(或“n”即1-24组)和“number_panels”“number_turbines”选项?


感谢 - 为了找到每个赤字(n)的值的总和,并因此具有24小时内我做这在我看来,能够做什么,下面的各个总赤字我我问,但我得到不正确的答案:

daily_deficit(number_panels + 1, number_turbines + 1) =... 
sum(deficit(number_panels + 1, number_turbines + 1,n)) – 
+1

如果您发布一个语法正确的一块Matlab的一些我们将削减并粘贴它,看看我们是否可以运行它并找出你的问题。您发布的内容在语法上不正确。为了帮助您,我可能并不是唯一一个对您的代码进行基本更正的人太空闲。帮你一个忙,自己做一些修正。 – 2012-07-13 15:35:37

+0

嗨,感谢您的建议,虽然我不太清楚问题是什么。除了说明需求的大小,PV_supply和WT_supply是24x1还需要什么信息?以及我上面显示的问题有哪些? – user643469 2012-07-13 15:38:28

+0

我是一名初学者,所以我绝对需要所有我能得到的建议/指导。谢谢! – user643469 2012-07-13 15:38:49

回答

0

功能calcDeficit.m:

File Edit Options Buffers Tools ObjC Help                    
function deficit = calcDeficit (Demand, PV_supply, WT_supply) 

    % initialize the size (good practice) 
    deficit = zeros(6,11,24); 


    for number_panels = 0:5 

    for number_turbines = 0:10 

     for n = 1:24 % number of hours per day 
     deficit(number_panels+1,number_turbines+1,:) = Demand(n) - (PV_supply(n)*number_panels) -... 
      (WT_supply(n)*number_turbines);% hourly power deficit 

     if deficit(n)<0 
      deficit(n) = 0; 
     end 
     end 
    end 
    end 
return 

例如呼叫:

Demand=randn(24,1); PV_supply=randn(24,1); WT_supply=randn(24,1); test(Demand,PV_supply,WT_supply) 

您的访问需求通过

Demand(panels+1,number_turbines+1,hour) 
0

您的问题是要存储的deficit结果,因为只有价值n的功能,每天的小时数。在您的内环周围n,你继续通过您的外环每次更换的值,因此在运行结束时,你只有n = 1:24值在number_panels = 5和number_turbines = 10

试试这个:

deficit(number_panels+1, number_turbines+1, n) = ... 

这样,最后,您可以检查给定三个索引的任意组合。我为number_panels和number_turbines添加了1的值,因为MATLAB使用基于1的索引。要获得特定数量的面板或涡轮机的结果,请确保在检查时加1。

具体而言,3块板和在每小时5在当天4个涡轮机:

disp(deficit(3+1, 4+1, 5))

EDIT:添加1至number_panelsnumber_turbines的值,以避免0索引。