matlab中tic和toc问题,为什么明显不对?

来源:百度知道 编辑:UC知道 时间:2024/05/01 21:40:42
我用tic和toc计算程序运行时间,为什么明明有100多seconds,但结果却显示0.093seconds,明显不对啊!?

但是,对于简单的程序,我用pause()命令试验都是正确的

为什么我的程序运行后就不行?

请高手指点 谢谢!
感谢jackwuzm的回答。但是,tic和toc是时间间隔,不管是什么占用时间,都应该计算在内啊。时间有点太短了,不可能的!还有没有其他原因?谢谢!
我中间加了一个pause(1),理论上应该大于1second,但结果还是那么短! 但是在最后的toc那一行之前加一个pause(2),结果可以是2.093seconds,不是3.093seconds

循环里没有tic

可能是trainlssvm的问题,我把pause(2)放在它之前和之后,计算出的时间不一样,差2秒。不知怎么解决。

验证程序1:
tic; t1=clock;
for i=1:3
tic ;t2=clock;
k=0;
for j=1:2
k=k+i*j;
pause(0.5)
end
disp('运行时间:');
toc; etime(clock,t2)
end
disp('总时间:');
toc;etime(clock,t1)

验证程序2
tic
puase(0.5)
toc
puase(0.5)
toc
puase(0.5)
toc
puase(0.5)
toc

最后查看运算结果。

tic和toc的用法说明如下

每一次遇toc时,程序自动计算toc和最近一次的tic之间的时间

下面的”运行时间“,能够正常实现,是正确的
但是”总时间“是错误的,总时间计算的是,最后一次for j=1:2循环的tic到最后的toc之间的时间,也就是我在上面说的toc是计算与最近一个tic直接的时间,而最近一个tic就是最后一次循环中出现的tic

我们可以使用下面的程序进行验证
tic; t1=clock;
for i=1:3
tic ;t2=clock;
k=0;
for j=1:2
k=k+i*j;
pause(0.5)
end
disp('运行时间:');
toc; etime(clock,t2)
end
disp('总时间:');
toc;etime(clock,t1)

还有一个验证是

tic
puase(0.5)
toc
puase(0.5)
toc
puase(0.