Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.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
使用clock()函数计算C中system()命令的运行时_C_Matlab_System_Clock_Cpu Time - Fatal编程技术网

使用clock()函数计算C中system()命令的运行时

使用clock()函数计算C中system()命令的运行时,c,matlab,system,clock,cpu-time,C,Matlab,System,Clock,Cpu Time,我试图在我的C程序中计算系统命令所花费的时间。 我正在尝试使用C中的system()函数从C调用一个MATLAB例程。我想计算调用system()时,MATLAB运行、退出并将控制返回C所消耗的CPU时间。我的伪代码片段如下: void main() { clock_t matlab_begin, matlab_end; matlab_begin = clock(); system(/String for invoking MATLAB routine/); p

我试图在我的C程序中计算系统命令所花费的时间。 我正在尝试使用C中的system()函数从C调用一个MATLAB例程。我想计算调用system()时,MATLAB运行、退出并将控制返回C所消耗的CPU时间。我的伪代码片段如下:

void main()
{
    clock_t matlab_begin, matlab_end;
    matlab_begin = clock();

    system(/String for invoking MATLAB routine/);
    printf("MATLAB ENDED");

    matlab_end = clock();

    total_time_taken = (float)(matlab_end - matlab_begin)/CLOCKS_PER_SEC;
}
所花费的总时间值为0.03秒。然而,当我使用cputime函数计算从MATLAB例程开始到MATLAB中结束运行MATLAB脚本所需的cputime时,我得到了大约11秒

我想知道为什么这两个运行时如此不同?另外,在MATLAB完成其工作并退出并将控制权返回给系统命令之前,system()命令之后的print语句不会执行。。因此,理想情况下,两个运行时应该是相同的,但它们不是

请帮忙!
谢谢。

我相信C代码中的
时钟调用只能为C程序获取时间。
系统
调用正在启动另一个程序(在本例中为Matlab)。当您从C程序中的
clock
获得结果时,您看不到任何Matlab的执行时间。这0.03秒正是启动主程序、调用时钟和启动Matlab所需的时间

另见

感谢您的回复。那么,计算运行时间的理想方法应该是什么呢?我想看看CPU运行时间。一种方法是在MATLAB中检查cputime,并将其添加到使用clock()函数计算的C代码的剩余CPU时间中。我调用MATLAB,然后一旦它退出,我使用C对MATLAB输出进行后处理,我希望计算我的程序的总运行时间(MATLAB+C)。MATLAB的cputime函数是否给出了与C中的clock()函数相同的结果,或者将两者相加将是错误的?谢谢。@NMA也许可以改为《时间》