Why can MATLAB engine session no longer call "clear all"?
Mostra commenti meno recenti
Between MATLAB 2024b and MATLAB 2025a, feeding a "clear all" call to a MATLAB engine (opened with engOpen() or engOpenSingleUse()) prevents any subsequent MATLAB code from executing properly within the engine.
For example, in MATLAB's engdemo.cpp:
if (!(ep = engOpen(""))) {
fprintf(stderr, "\nCan't start MATLAB engine\n");
return EXIT_FAILURE;
}
// Add clear all call
engEvalString(ep, "clear all");
Adding the "clear all" call causes all subsequent MATLAB calls (including the plot, and setting the X variable) to not work. This worked fine up to and including MATLAB 2024b.
Risposte (1)
Walter Roberson
il 7 Ott 2025
0 voti
It would not surprise me at all if "clear all" is clearing some crucial connection information that has been stored in variables.
You should expect problems if you "clear all". Using "clear all" is like Wile E. Coyote blowing up the very bridge that he is standing on.
3 Commenti
Gabalodon
il 7 Ott 2025
Walter Roberson
il 7 Ott 2025
In my opinion, it always relied upon undefined behaviour, and it should not be surprising if the results of that undefined behaviour changed over time.
Gabalodon
il 7 Ott 2025
Categorie
Scopri di più su Call MATLAB from C++ in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!