我制作了两个模拟特定系统的程序;一个是我的,另一个是根据期刊(不是我的)的复制品。
我先跑了
clc;close all;clear all;
tic
for run=1:10000
result1{run} = runCode1;
end
Time = toc;
result1{10001} = toc/10000;
save('Mine', 'result1');
然后,我跑了
clc;close all;clear all;
tic
for run=1:10000
result2{run} = runMyCode2;
end
Time = toc;
result2{10001} = toc/10000;
save('Others', 'result2');
我比较了两个参数“result1 {10001}”和“result2 {10001}”。但是,由于tic / toc代表实时,我担心一些事情。
我必须在相同的条件下运行两个代码,但现在我按顺序运行这两个代码。此外,代码分别花费大约20小时和50小时。因此,我必须跑70个小时!我不忍不用电脑70个小时。我必须做很多其他事情。但是,如果我运行某些东西,例如IE,铬,乳胶,信使,ppt,打印等,它们可能会影响代码的运行时间。
我将详细添加一些内容。
clc;close all;clear all;
Data = load('RawData');
for monte=1:100
nextState = Initialize(Data, ...);
for timeIdx = 1:1000
currState = EvaluateCurrentState(nextState, Data{timeIdx});
out{monte,timeIdx} = EvaluatePerformance(currState);
nextState = updateState(currState); % using the currState, subalgorithms are run.
end
end
然后,我处理这个100乘1000的单元格数据;找到平均值,移动平均值,绘图等。
使用N = 5开始统计并保持每次运行的时间,而不是根据差异来确定是否需要更多运行。无论如何10000可能太多了。
clc;close all;clear all;
N=5;
result1=cell(1,N+2);
tocs1=zeros(1,N);
for run=1:N
starttime=tic;
result1{run} = runCode1;
tocs1(run)=toc(starttime);
end
result1{N+1} = mean(tocs1);
result1{N+2} = std(tocs1);
save('Mine', 'result1','tocs1');