Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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/Simulink中增加montecarlo模拟的模拟时间_Matlab_Simulink - Fatal编程技术网

在Matlab/Simulink中增加montecarlo模拟的模拟时间

在Matlab/Simulink中增加montecarlo模拟的模拟时间,matlab,simulink,Matlab,Simulink,我正在为Simulink模型运行Monte Carlo模拟,其中的Matlab脚本大致如下所示: model = 'modelName'; load_system(model) for ii = 1 : numberOfMC % Some set_param... % Some values are set sim(model); results{ii, 1} = numberOfMC; % ect... end close_system(model

我正在为Simulink模型运行Monte Carlo模拟,其中的Matlab脚本大致如下所示:

model = 'modelName';

load_system(model)

for ii = 1 : numberOfMC
    % Some set_param...
    % Some values are set

    sim(model);
    results{ii, 1} = numberOfMC;
    % ect...
end
close_system(model,0);
随着蒙特卡罗试验次数的增加,一次模拟的时间也会增加,就像n^2一样

有没有一个简单的解释,有没有一个解决办法,使一些线性的时间

谢谢大家!

编辑:


当我将我的模拟分成6个批次,并将它们串联运行时,模拟时间的总和远远小于我一次运行整个模拟的时间。

由于没有提问者的反馈,人们可以做的事情似乎是有限的,因此我将发表我的评论作为回答:


我打赌是内存问题,如果您想消除此问题,请查看如果不首先存储结果,问题是否仍然存在,只需删除此行:

results{ii, 1} = numberOfMC;

还要确认您没有其他增长变量,或者您无意中使输入变得更复杂。这可能不相关,如果按相反的顺序进行所有模拟,时间是否也会像这样增加?或者,如果您执行了全部迭代,但每次都使用完全相同的输入?

是否预先分配
结果
?也许它是动态增长的,这需要时间。你真的使用
results{ii,1}=numberOfMC
?那条线的目的是什么
numberOfMC
似乎是一个君士坦丁,我也非常有兴趣知道这类问题的答案(将“sim(模型)”放在循环中,在循环之前加载的内存问题)是否存在使系统僵硬的参数更改,因此解算器出现问题?模型在循环中每次执行多少时间步?我打赌是内存问题,如果你想消除这个问题,看看如果不首先存储结果,问题是否仍然发生,只需删除这行:
results{ii,1}=numberOfMC。还要确认您没有其他增长变量,或者您无意中使输入变得更复杂。这可能不相关,如果按相反的顺序进行所有模拟,时间是否也会像这样增加?或者,如果您进行了全部迭代,但每次都使用完全相同的输入?