对于具有两个矩阵的循环:结果矩阵的大小与输入矩阵数据

时间:2017-07-27 06:55:09

标签: matlab for-loop matrix

也许这是一个愚蠢的问题,但我们走了:

我在两个for循环中有两个5X6的输入矩阵,我在simulink中有一个模拟,必须为每个组合运行才能得到两个结果矩阵但是大小为6x6时会出现问题我的等高线图因为大小不同。我试过尺寸(max()),长度,数字,结果不同,但总是大小不同。我不确定我做错了什么。任何帮助将不胜感激。

到目前为止,代码看起来像这样(battery_bankmatrix_test1和power_peak_PVmatrix_1test是我输入的5x6矩阵,results_waterproduction和results_energyconsumption是6x6的结果矩阵)

for i_Batterycapacity = 1:length(battery_bankmatrix_test1)

     for i_PVarray = 1:length(power_peak_PVmatrix_1test)
         parameter.battery.cap = battery_bankmatrix_test1(i_Batterycapacity); 
         parameter.pv.power = power_peak_PVmatrix_1test(i_PVarray); %Watt peak, used to run the simulation          
         % Calculate solar radiation on surface and run Simulink simulation
         % load PV data    
         %load PV data    
         % load('PV Data/PV U-V Map SolarWorld 150Wp Poly - 4 Parameter Model based on Carrero et al 2010.mat');  
         PVmodule_data = 'PV U-V Map SolarWorld 150Wp Poly - 4 Parameter Model based on Carrero et al 2010.mat';
         load([cd '\PV Data\' PVmodule_data]);
         % Calculate solar radiation on surface and run Simulink simulation
         run('Revived_SIM_Manual.p');
         sim('B_Simulink_Sim_Revived_V2_July2017');
         % % saveas(ho,sprintf('FIG%d.png')); % will create FIG1, FIG2,...
         % 
         results_waterproduction(i_PVarray,i_Batterycapacity) = water_production(8760)
         results_energyconsumption(i_PVarray,i_Batterycapacity) = consumption(8760)
     end 
 end

1 个答案:

答案 0 :(得分:1)

结果不一样是正常的,因为 numel 返回元素5x6 = 30的数量,函数长度返回行或列的最大值,这里它返回6(因为你的矩阵是5x6,但是如果它是6x11,长度将返回11)而最后一个是size(max())它返回1因为最大只有一个元素,但如果您尝试max(size())而不是它将返回6.