也许这是一个愚蠢的问题,但我们走了:
我在两个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
答案 0 :(得分:1)
结果不一样是正常的,因为 numel 返回元素5x6 = 30
的数量,函数长度返回行或列的最大值,这里它返回6
(因为你的矩阵是5x6,但是如果它是6x11,长度将返回11)而最后一个是size(max())
它返回1
因为最大只有一个元素,但如果您尝试max(size())
而不是它将返回6.