Matlab using Maple symbolic engine suddenly and oddly don't run in certain loop.
5 次查看(过去 30 天)
显示 更早的评论
for i=1:1000
Firstly, my code can successfully run through loop.
But, at a certain i, such as i = 137 or 152 and so on, the problem is occur, that is
- the program seems like paused, the 'command window' no longer output value of variables which successfully output in the same previous loop.
- And when I try to pause the program using 'pause' button but the 'pausing' always shows, no response, even though after 12 hours or more.
- Meanwhile, the CPU occupied by Matlab is zero when getting into trouble.
- There is another odd thing, when I use 'Run and Advance' for this same code, the code sometimes run well, no bad thing happens, however, sometimes the problem occurs as usual.
So, What the problem is? And does it caused by Maple symbolic engine? Because when I use MuPAD there is no such problem.
Matlab 2017a and Maple 2018.
3 个评论
Stephen23
2019-11-26
编辑:Stephen23
2019-11-26
zhang sifei's "Answer" moved here:
I think the cause of this problem may occurs here
The wrong code is
T(i,1)=T(i,1)+w*(u(j,1)-u(i,1))*v*f;
and the sym/subsasgn (line 64) is
Does anybody tell me how to solve it?
回答(1 个)
Walter Roberson
2019-11-26
B_=eval(B);
You should never eval() a symbolic expression. The internal language used by the character representation of symbolic expressions is not the language of MATLAB itself, and is not the the internal symbolic toolbox language. This is true for both the Maple based symbolic engine and the later MuPAD based symbolic engine.
You should instead subs() for any variables you want to replace with values from the workspace, and possibly double() the result to make it numeric.
6 个评论
Walter Roberson
2019-12-4
I do not know what is wrong. I would guess that it hung inside of Maple for some reason.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!