主要内容gydF4y2Ba

matlab: cpplib: MATLABLibrary:: fevalAsyncgydF4y2Ba

执行一个gydF4y2BaMATLABgydF4y2Ba函数异步地从可部署归档文件中删除gydF4y2Ba

描述gydF4y2Ba

执行一个函数与1输出MATLABgydF4y2Ba®gydF4y2Ba数据数组参数和1输入MATLAB数据数组参数gydF4y2Ba

函数名称gydF4y2Bau16stringgydF4y2Ba

fevalAsync(const std::u16string &function, const matlab::data::Array &arg, const std::shared_ptr &output = std::shared_ptr(), const std::shared_ptr &error = std::shared_ptr())gydF4y2Ba

函数名作为字符串gydF4y2Ba

fevalAsync(const std::string &function, const matlab::data::Array &arg, const std::shared_ptr &output = std::shared_ptr(), const std::shared_ptr &error = std::shared_ptr())gydF4y2Ba

执行一个带有1个输出MATLAB数据数组参数和任意数量输入MATLAB数据数组参数的函数gydF4y2Ba

函数名称gydF4y2Bau16stringgydF4y2Ba

fevalAsync(const std::u16string &function, const std::vector &args, const std::shared_ptr &output = std::shared_ptr(), const std::shared_ptr &error = std::shared_ptr())gydF4y2Ba

函数名作为字符串gydF4y2Ba

fevalAsync(const std::string &function, const std::vector &args, const std::shared_ptr &output = std::shared_ptr(), const std::shared_ptr &error = std::shared_ptr())gydF4y2Ba

执行具有任意数量输出MATLAB数据数组参数和任意数量输入MATLAB数据数组参数的函数gydF4y2Ba

函数名称gydF4y2Bau16stringgydF4y2Ba

FutureResult> fevalAsync(const std::u16string &function, const size_t nlhs, const std::vector &args, const std::shared_ptr &output = std::shared_ptr(), const std::shared_ptr &error = std::shared_ptr())gydF4y2Ba

函数名作为字符串gydF4y2Ba

FutureResult> fevalAsync(const std::string &function, const size_t nlhs, const std::vector< std std &args, const std::shared_ptr &output = std::shared_ptr(), const std::shared_ptr &error = std::shared_ptr()))gydF4y2Ba

执行带有本地标量输入和输出参数的函数gydF4y2Ba

函数名称gydF4y2Bau16stringgydF4y2Ba

模板<类ReturnType typename…RhsArgs >gydF4y2Ba

fevalAsync(const std::u16string &function, RhsArgs&& &…rhsArgs)gydF4y2Ba

函数名作为字符串gydF4y2Ba

模板<类ReturnType typename…RhsArgs >gydF4y2Ba

fevalAsync(const std::string &function, RhsArgs&&…rhsArgs)gydF4y2Ba

使用输出重定向执行带有本地标量输入和输出参数的函数gydF4y2Ba

函数名称gydF4y2Bau16stringgydF4y2Ba

模板<类ReturnType typename…RhsArgs >gydF4y2Ba

fevalAsync(const std::u16string &function, const std::shared_ptr &output, const std::shared_ptr &error, RhsArgs&& &…rhsArgs)gydF4y2Ba

函数名作为字符串gydF4y2Ba

模板<类ReturnType typename…RhsArgs >gydF4y2Ba

fevalAsync(const std::string &function, const std::shared_ptr &output, const std::shared_ptr &error, RhsArgs&&…rhsArgs)gydF4y2Ba

在c++共享库中异步调用一个打包的MATLAB函数:gydF4y2Ba

  • 不重定向标准输出或标准错误:gydF4y2Ba

  • 标准输出重定向:gydF4y2Ba

  • 标准输出和标准错误的重定向:gydF4y2Ba

在那里,gydF4y2Ba

LhsItemgydF4y2Ba 本地标量gydF4y2Ba
RhsArgsgydF4y2Ba

一个或多个本机标量的序列。gydF4y2Ba

StreamBuffergydF4y2Ba

std:: basic_streambuf < char16_t >gydF4y2Ba

它传递函数名,后面跟着参数。如果在标准库中找不到指定的函数,则会引发异常。gydF4y2Ba

万博1manbetx支持本地类型:gydF4y2Ba

  • 保龄球gydF4y2Ba

  • int8_tgydF4y2Ba

  • int16_tgydF4y2Ba

  • int32_tgydF4y2Ba

  • int64_tgydF4y2Ba

  • uint8_tgydF4y2Ba

  • uint16_tgydF4y2Ba

  • uint32_tgydF4y2Ba

  • uint64_tgydF4y2Ba

  • 浮动gydF4y2Ba

  • 双gydF4y2Ba

  • std:字符串gydF4y2Ba

  • std:: u16stringgydF4y2Ba

  • std::复杂的< T >gydF4y2Ba在哪里gydF4y2BaTgydF4y2Ba是数字类型之一。gydF4y2Ba

参数gydF4y2Ba

const std:: u16string函数gydF4y2Ba

const std:: string函数gydF4y2Ba

要计算的已编译的MATLAB函数的名称,指定为gydF4y2Bau16stringgydF4y2Ba或gydF4y2Ba字符串gydF4y2Ba.gydF4y2Ba
const size_t nlhsgydF4y2Ba 返回值的数量。gydF4y2Ba
const std::向量< matlab::数据::>数组参数gydF4y2Ba MATLAB函数使用的参数。gydF4y2Ba
const matlab::数据::基于“增大化现实”技术的数组gydF4y2BaggydF4y2Ba 参数由MATLAB函数使用单输入。gydF4y2Ba
const RhsArgs& rhsArgsgydF4y2Ba

模板形参包由一个或多个实参序列组成,每个实参都是一个本机标量。gydF4y2Ba

const std::要查看< StreamBuffer > &输出gydF4y2Ba 用于存储MATLAB函数的标准输出的字符串缓冲区。gydF4y2Ba
const std::要查看< StreamBuffer > &错误gydF4y2Ba 字符串缓冲区用来存储MATLAB函数的错误输出。gydF4y2Ba

返回值gydF4y2Ba

FutureResultgydF4y2Ba

取任何允许的类型gydF4y2BaLhsItemgydF4y2Ba.gydF4y2Ba

异常gydF4y2Ba

matlab: cpplib:: CanceledExceptiongydF4y2Ba

MATLAB函数被取消。gydF4y2Ba

matlab: cpplib:: InterruptedExceptiongydF4y2Ba

MATLAB函数被中断。gydF4y2Ba

matlab: cpplib:: MATLABNotAvailableErrorgydF4y2Ba

MATLAB会话不可用。gydF4y2Ba

matlab: cpplib:: MATLABSyntaxErrorgydF4y2Ba

MATLAB函数返回一个语法错误。gydF4y2Ba

matlab: cpplib:: MATLABExecutionErrorgydF4y2Ba

该函数返回一个MATLAB错误。gydF4y2Ba

matlab: cpplib:: TypeConversionErrorgydF4y2Ba

MATLAB函数的结果不能转换为用户特定的类型。gydF4y2Ba

例子gydF4y2Ba

执行用户编写的gydF4y2BaMATLABgydF4y2Ba函数gydF4y2BarepeatdoublegydF4y2Ba在c++共享库中异步使用gydF4y2Ba

/调用函数repeatdouble,该函数迭代地继续将一个数字加倍,并一路打印出结果。//(可选的)第二个和第三个参数分别决定应该执行多少次迭代,以及操作之间应该间隔多少秒。我们异步地调用函数,然后在第一次调用的所有迭代完成之前,用不同的基值//再次调用它(也是异步地)。//将参数作为c++本地类型(即// double)传递给函数,而不是md::Array。返回类型也是本地的//类型(double),所以fevalAsync和FutureResult需要接受// "double"作为模板形参。mc::FutureResult futureA = lib->fevalAsync(mc::convertUTF8StringToUTF16String("repeatdouble"), 10.0, 3.0, 0.5);mc::FutureResult futureB = lib->fevalAsync(mc::convertUTF8StringToUTF16String("repeatdouble"), 11.0, 3.0, 0.5);//一旦它准备好了,就得到结果。double resultA = futureA.get();double resultB = futureB.get();gydF4y2Ba
介绍了R2018agydF4y2Ba