2015-12-09 79 views
0

Suppos在Windows PC上運行着很多matlab.exe,我試圖終止它們,除了我正在使用的那個。我做了以下內容:將參數傳遞給matlab中的taskkill()?

curPID = feature('getpid') 
%say curPID return 10000. 
%then follow: 
system('taskkill /F /FI "PID ne 10000" /IM matlab.EXE'); 
%the above works fine. 

但每一次,當我運行

curPID = feature('getpid') 
在不同的MATLAB GUI或M-文件

,curPID的值會發生變化,所以我試圖curPID傳遞給系統()功能如下:

system('taskkill /F /FI "PID ne curPID"/IM matlab.EXE'); 
% or 
system('taskkill /F /FI "PID ne str2num(curPID)"/IM matlab.EXE'); 

但他們不工作。

如何將curPID傳遞給taskkill?

回答

3

您可以使用sprintf您的來電格式化爲sys

curPID = feature('getpid'); 
syscall = sprintf('taskkill /F /FI "PID ne %u" /IM matlab.EXE', curPID); 
system(syscall); 
+0

謝謝!這工作。順便說一下,Linux集羣上的等效物是什麼? – XAM

+0

@XAM我不知道。對超級用戶來說可能是一個更好的問題,而不是。 – excaza