MATLAB Answers

accidentally changing built-in code from checking it by clicking on the error line

6 views (last 30 days)
MaxC
MaxC on 15 Mar 2020
Commented: Guillaume on 15 Mar 2020
whenever an error occurs in using a built-in function, it is possible to visualize the underline code by clicking on (line ###). If, while checking, part of the code is changed accidentally (e.g. a character of the existing code is deleted, or a new character is added), does Matlab "remember" this change? Is such a change irreversible? Thank you

  1 Comment

dpb
dpb on 15 Mar 2020
If you make a change in a file in the editor and save that file, then yes, that file has been changed permanently.
Whether it is reversible depends, but in general the answer is, unfortunately, "No" unless a copy of the file has been made which a user is unlikely to have done.
It's a double-edged sword of the feature that so much of MATLAB is written in MATLAB m-file code; those files are no different than user-created ones. I've often wondered why the install doesn't mark those files as readonly so such mistakes can't happen so easily altho that makes distribution and updates more complicated for TMW.
If it has happened about the only way to recover would be to restore a copy of the function from a distribution but TMW doesn't make that an easy thing to do, either.
I think it is a weakness...
What you need to do is to be VERY careful to not CTRL-S in a system file in the editor but to cancel out and to not automatically reply yes if prompted to save the file if closing the window brings up the prompt. IS A GOOD REASON TO NOT CHECK THE AUTOMATIC "Save changes upon clicking away from a file." You can get some help if also do not check "Automatically delete backup files when the Editor closes" as then there should be a backup copy of the original.

Sign in to comment.

Accepted Answer

Guillaume
Guillaume on 15 Mar 2020
You would have to save the file before matlab sees the changes. Additionally, on Windows if you haven't messed up with the default permissions, you would not have write permission to matlab's own directories. Also, if the file is still open you can always undo the changes.
But yes, if you do manage to change the file, you could irreversibly damage matlab.

  5 Comments

Show 2 older comments
dpb
dpb on 15 Mar 2020
"on Windows ... you would not have write permission to matlab's own directories"
I guess if not running as supervisor that probably is true on Windows installs, isn't it? On own system, I am and do so do need to be careful! :)
"if the file is still open you can always undo the changes."
If you haven't done a CTRL-S which empties the "Undo" buffer and has already written (if have permission, anyway).
Steven Lord
Steven Lord on 15 Mar 2020
If you notice you've made such a change before closing the file, you can undo the changes using the icons in the quick access toolbar.
Guillaume
Guillaume on 15 Mar 2020
"I guess if not running as supervisor that probably is true on Windows installs, isn't it?"
You mean administrator. At least, in the latest versions of Windows, the Program Files directory is not writeable even to administrator (without a UAC prompt and from a program that's running with elevated privileges. That's not normally the case with matlab.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!