Executing code that's dynamically written to a file

2 views (last 30 days)
Hi all,
My goal is to write a function that executes whatever is copied to the clipboard. Importantly however, I'd like to place this code into a script, so that if an error occurs, the location of the error can be identified via 'dbstop if error'.
I've written code that does this, however Matlab doesn't seem to update it's 'compiled' version of the script until after execution. Thus, only after I run the code twice does the code actually reflect what is in the clipboard. The first time it is written and any old code is actually run. The second time through the new code is present and executed.
i.e.
1st run - write to script, execute old code from script in memory
2nd run - write to script (not really needed), execute new code that was placed in memory after exiting first run
I thought about creating a timer, but code in a timer tends to execute in the ether without easy debugging support. Besides wrapping my timer in a try/catch, is there some other way to force updating the definition of the file or to throw some event based callbacks which would update the file?
Thanks, Jim
  2 Comments
Mukul Rao
Mukul Rao on 23 Jun 2015
Hi Jim, would it possible to include the code as an attachment? Further can you also specify the version of MATLAB you are working with. Based on the information provided , I would recommend using the function "rehash" right after you create your script file. This will update the list of known files and classes. Here is the documentation link for the "rehash" command for more information:
Jim Hokanson
Jim Hokanson on 23 Jun 2015
It makes calls to other functions in that repo. Thanks for the suggestion although 'clear' works very well so I'm going to use that.
I will tend to copy examples in my documentation that are commented out and then type this command in the command window. It needs a bit of work but it is nice to have errors be debuggable rather than just seeing an error in the command window.

Sign in to comment.

Accepted Answer

James Tursa
James Tursa on 23 Jun 2015
What happens if you "clear" the script from memory before invoking it?
  1 Comment
Jim Hokanson
Jim Hokanson on 23 Jun 2015
Doh! Obviously. I tend to forget that clear isn't specific to variables. That works perfectly. Thanks.

Sign in to comment.

More Answers (0)

Categories

Find more on Environment and Settings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!