Is there a way to run a function every time Matlab returns to its command prompt

조회 수: 1 (최근 30일)
I would like to install a function that would run every time any other function has completed.
This might be a bit like "startup.m" but would run every time the command prompt is shown instead of at startup. I know Matlab runs "rehash.m" in this manner so maybe there is a way to add more fcns to run at this time.
Is there a way to do this?
Thanks
Ronan
  댓글 수: 2
Ronan
Ronan 2011년 5월 20일
I have a function which tracks usage of my other functions.
It does a much more comprehensive dependency analysis than is possible by code analysis. I would like this function to be able to know when all other functions have finished executing.
Thanks
Ronan

댓글을 달려면 로그인하십시오.

답변 (2개)

Jan
Jan 2011년 5월 20일
A cheap method is to call all functions through a wrapper:
function varargout = wrapper(varargin)
varargout = cell(1, nargout)
[varargout{:}] = feval(varargin);
% Let the logging come here:
fprintf('returned at %s\n', datestr(now, 0));
Then you cannot just catch the return of the function, but the entry also.
Did you inspect the PROFILEr in detail? There are some undocumented features (look on Yair's pages).

Andy
Andy 2011년 5월 20일
If you can get the handle to the command window (I'm sure Yair has done similar things at some point; take a look around www.undocumentedmatlab.com), then you can probably change the FocusGained callback to execute your code. But I don't know if this would overwrite the existing callback for the command window. (I also don't know if there is an existing callback, or what it does).
  댓글 수: 1
Jan
Jan 2011년 5월 20일
If you have an open GUI, the focus does not return to the command window, although all functions are ready.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by