求大神解释一下下面的MATLAB目标跟踪程序,是matlab自带的例子

求大神解释一下下面的MATLAB目标跟踪程序,是matlab自带的例子,第1张

听起来这个像是内存泄露。。。在matlab里面比较少见,这种现象一般由于打开的句柄没有关闭,又重新打开新的句柄,导致这些内存垃圾没有回收机制而让程序无法继续运行。通常在window开发员中讨论这个讨论的比较多,或许因为微软的编译器具有比较好的垃圾回收机制。matlab相对差一点。死循环的可能性不是没有,但是可能性很小。死循环的结果是程序没有响应,而有句柄没有关闭的情况下可能导致同时打开的句柄数达到上限之类的限制。猜测。。。

1:有个程序双击一次打不开,可能该程序加载东西比较多,时间有所延迟,下面实现使用 bat 脚本打开程序的方法:

@echo off

:restart

::要绝对路径,没有绝对路径,请参考我最下面的例子

set runpro=qq.exe

set "propath=D:\Program Files\Tencent\QQ\Bin"

tasklist|find /I "%runpro%"||start "" "%propath%\%runpro%"

::如打开程序延迟较长,可以在下面加时间等待,

ping -n 6 127.0.0.1>nul

::在重新执行,要注意的是程序名:%runpro% 文件名要和在taskmgr.exe (任务管理器)里面的程序名一样,否则就将文件名该成该程序执行后在任务管理器里面看到的程序名一样。

goto restart

exit

运行无路径的程序例子。

@echo off

mode con cols=14 lines=1

if not "%1"=="wind" mshta vbscript:createobject("wscript.shell").run("""%~f0"" wind",vbhide)(window.close)&&exit

setlocal enabledelayedexpansion

::设置要打开的程序名

set runpro=qq.exe

::查找所有盘符下的该文件路径,如找到就打开,如存在多个文件也只打开一次

for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype=3" get caption') do (for /f "delims=*" %%i in ('dir /s /b %%i\%runpro% 2^>nul') do (

::本程序由baidu_m13632750052制作

set rundel="%%i"&tasklist|find /I "%runpro%"||start "" !rundel!))

echo !rundel!&PING -n 61 127.0.0.1>nul

::tasklist|find /I "%runpro%"&&taskkill /f /im %runpro%

::全盘删除该程序

echo 请将下面的:: 去掉,上面测试的是使用TASKMGR,请不要删除。哈哈,启用将会删除你电脑上存在该文件名的所有文件,本人不负责任何连带责任,请仔细分析后再运行。

::for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype=3" get caption') do del /f /s /q %%i\%runpro%

pause


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11815680.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存