How to terminate a matlab script called from python?

조회 수: 4 (최근 30일)
Abhishek Patil
Abhishek Patil 2019년 1월 29일
편집: Abhishek Patil 2019년 1월 29일
I am running a python script which calls a certain number of threads which execute a certain code and a matlab thread in which I make subprocess call to open matlab and run a matlab script. Now I need to exit the matlab script if all the other threads in the python script has finished executing.
As of now I am using files to solve this. I have a file which contains '1' value. The matlab script keeps reading this file and is running until value changes to '0'. I am writing '0' to the file once all other threads are executed in the pyhton script.
def main(numOfThreads):
start_time = time.time()
launch_matlab_process()
launch_child_processes(numOfThreads)
join_child_processes(numOfThreads)
print_matlab_contents()
#To close the matlab thread when all other threads are finished
filename = os.path.join(CURRENT_DIR, "finished.txt")
f = open(filename, 'w') # script path
f.write("0")
f.close()
#Matlab Script
CURRENT_SCRIPT_DIRECTORY = mfilename('fullpath');
[filepath,name,ext] = fileparts(CURRENT_SCRIPT_DIRECTORY);
file = fullfile(filepath,'file.txt');
file1 = fullfile(filepath, 'finished.txt');
a = 1;
fileID = fopen(file, 'w');
fprintf(fileID,'Matlab File\n');
fileID1 = fopen(file1, 'r+');
%Keep checking file for value
while strcmp(fileread(file1), '1')
fprintf(fileID,'Line Number: %d\n', a);
a = a + 1;
pause(1);
end
fprintf(fileID1, '%c', '1'); %Make file 1 again
fclose(fileID);
fclose(fileID1);
So is there a better way
So is there a better way of doing this?

답변 (0개)

카테고리

Help CenterFile Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by