Getting error in MEX file execution

2 次查看(过去 30 天)
Caleb
Caleb 2016-10-26
编辑: Caleb 2016-10-26
I'm doing parameter tuning for an equation of state using the genetic algorithm function (ga). When I run the equation of state file as I coded it in MATLAB, it works fine. When I compile and package the file as a MEX file, it gives me the following error:
Error using
coder.internal.error (line
17)
Domain error. To compute
complex results from real x,
use 'log(complex(x))'.
Error in log (line 13)
coder.internal.error('Coder:toolbox:ElFunDomainError',mfilename);
Error in EOSfunction (line 552)
logPHI = MUres_kT - log(Z);
What could be causing this? I have checks to make sure that Z is always real and non-negative, so log(Z) should never be causing a problem.
  2 个评论
Walter Roberson
Walter Roberson 2016-10-26
As an experiment, just above that logPHI line, add
assert(Z > 0);
and see what happens.
Caleb
Caleb 2016-10-26
编辑:Caleb 2016-10-26
Didn't work. Here's the error statement:
Error using EOSfile (line 552)
Assertion failed.
EDIT: I guess "Assertion failed" means that Z is returning a negative number. That was the fix. Thank you, Walter

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB Coder 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by