文档

未知的输出类型code .ceval

问题

你会看到这个错误信息:

'coder的输出。Ceval '类型未知。外围表达式不能求值。通过分配'coder的输出来指定输出类型。到一个已知类型的变量。

导致

类的输出类型时发生此错误消息coder.ceval调用。

解决方案

用预期的输出类型初始化一个临时变量。的输出赋值coder.ceval对这个变量。

例子

假设你有一个C函数叫做cFunctionThatReturnsDouble.您希望为函数生成C库代码喷火.的返回类型,代码生成器将返回错误消息coder.ceval

函数喷火% # codegencallFunction (coder.ceval (“cFunctionThatReturnsDouble”));结束函数callFunction (~)结束

要修复此错误,请使用临时变量定义C函数输出的类型。

函数喷火% # codegenTemp = 0;Temp = code .ceval(“cFunctionThatReturnsDouble”);callFunction(临时);结束函数callFunction (~)结束

你也可以使用coder.opaque初始化临时变量。

使用类的示例

假设您有一个自定义类方法。这个类使用方法来确保对象属性值落在一定范围内。

classdefclassWithSetter属性expectedResult = []结束属性(常量)scalingFactor = 0.001结束方法函数obj = set.expectedResult(obj,erIn)如果erIn >= 0 && erIn <= 100 erIn = erIn.*obj.scalingFactor;obj。expectedResult = erIn;其他的obj。expectedResult = NaN;结束结束结束结束

当为函数生成C库代码时喷火,代码生成器产生错误消息。的输入类型方法无法确定。

函数喷火% # codegenobj = classWithSetter;obj。expectedResult = code .ceval(“cFunctionThatReturnsDouble”);结束

若要修复此错误,请初始化一个具有已知类型的临时变量。对于本例,使用一种类型的标量double。

函数喷火% # codegenobj = classWithSetter;Temp = 0;Temp = code .ceval(“cFunctionThatReturnsDouble”);obj。expectedResult = temp;结束

另请参阅

|