How to set timeout to a function
이전 댓글 표시
Hi everyone, I need to stop the execution of a function if finish a specific time. Specifically the part of the program where i need to implement it is when i call a function to create a regressor:
[trainedModel, validationRMSE] = trainRegressionModelLinear(T, KFolds);
I have left the program running and it never finish the function so i wanted to exit the function and continue the rest of the program. The function works because i change the data "T" that i insert in the function and i get a trainedModel with its value but with long data T i think no works.
There is a example that i need to do but with try- catch doesnt work:
try
[trainedModel, validationRMSE] = trainRegressionModelLinear(T, KFolds);
catch (*time out finish*)
validationRMSE = "Error";
trainedModel = [];
end
I find some information how said that i need to use parallel pool, batch(), parfeval() or a timer but i dont understand what function is useful for my situation. I already use parallel pool with 4 workers because is better to train regressor but to apply the time out no idea.
Thanks so much for the help and sorry if I have explained badly because the english is not my native language.
채택된 답변
추가 답변 (1개)
Giovanni Soleti
2024년 9월 11일
0 개 추천
A similar solution that worked in my case is the following:
% you do what u need
tic
try
s = my_fcn();
catch
disp("out of time");
end
function s = my_fcn()
if toc > timeout
err("you are out of time");
end
% your function ...
% ,,,,,,,,,,,
end
카테고리
도움말 센터 및 File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!