Clear all returns warning evaluatecode.m could not be cleared because it contains the code that is currently executing?

조회 수: 3 (최근 30일)
I don't use clear all to clear workspace variables. I only use it at the beginning of the main method (that calls other functions) to make sure I have a fresh start after tests to make sure small parts of the algorithm works.
With that background out of the way, recently when I try to run a section that only contains a clear all; (first line of the whole code) and a clc;, it returns the following 3 warnings that I have never seen before (as I have been using clear all in this fashion for a long time):
Warning: The file 'C:\Program
Files\MATLAB\R2018a\toolbox\matlab\codetools\embeddedoutputs\+matlab\+internal\+editor\evaluateCode.p'
could not be cleared because it contains MATLAB code that is currently executing.
Warning: The file 'C:\Program
Files\MATLAB\R2018a\toolbox\matlab\codetools\embeddedoutputs\+matlab\+internal\+editor\evaluateCode.p'
could not be cleared because it contains MATLAB code that is currently executing.
Warning: The file 'C:\Program
Files\MATLAB\R2018a\toolbox\matlab\codetools\embeddedoutputs\+matlab\+internal\+editor\evaluateCode.p'
could not be cleared because it contains MATLAB code that is currently executing.
I am not as annoyed but interested in knowing why it suddenly starts to produce these warnings when it hadn't done so in the past 5 years of my experience with using clear all in MATLAB. It also produces other warnings such as when I try to load a data file it warns some subscripts are missing or something, which I turned the warning off after searching on google.

채택된 답변

Jan
Jan 2018년 9월 26일
편집: Jan 2018년 9월 26일
I don't use clear all to clear workspace variables.
I only use it at the beginning of the main method.
This is a contradiction. To "make sure I have a fresh start" simply use functions instead of scripts, and the problems will vanish immediately.
when I try to run a section
This might mean, that you stopped the code in the debugger and evaluate some lines of code manually. Then functions, which are currently processed, cannot be cleared, of course. If you do something else, please explain exactly, what it is.
It also produces other warnings such as when I try to load
a data file it warns some subscripts are missing or something
What or who is "it"? Please post the code and the complete text of the warning. "Or something" does not allow to understand the cause of the problem. Turning off warnings is a bad idea in general. Prefer to fix the cause of the problem instead.
  댓글 수: 2
Zhangxi Feng
Zhangxi Feng 2018년 9월 26일
You mean even the main program you put it under a function? How do I check the workspace variables when some outputs look wrong but not sure which part(s) caused it then? Save the entire workspace variables everytime?
I don't remember the exact warning or how to proc it at this time. When I looked it up, the answer says it should be automatically suppressed but somehow isn't so it suggested to turn off the warning.
Stephen23
Stephen23 2018년 9월 26일
편집: Stephen23 2018년 9월 26일
"How do I check the workspace variables when some outputs look wrong but not sure which part(s) caused it then? Save the entire workspace variables everytime?"
No, that is exactly what the debugging tools are for:
Programmers need to debug code, therefore programmers invent lots of tools to help them debug their code. Those are the tools that you should learn to use.
Beginners love scripts because they like to "see" all of their variables in the base workspace. And then they have to put clear everywhere, which is like shooting yourself in the foot just before running a race. Experienced programmers use functions because they like their code to work properly (and don't use clear).

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Workspace Variables and MAT-Files에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by