主要内容

编码器.RULEST.

运行测试更换呼叫马铃薯函数调用MEX函数

描述

例子

编码器.RULEST(测试FCN.测试更换呼叫FCN.呼叫编译版本FCN.测试是matlab的文件名®函数,脚本或基于类的单元测试,调用MATLAB函数FCN.。编译版本FCN.必须处于具有默认名称的MEX函数中。默认名称是指定的名称FCN.其次是_MEX.

例子

编码器.RULEST(测试FCNS.MEXFCN.替换对指定的MATLAB函数的调用,调用函数的函数。MEX功能MEXFCN.必须包含所有指定的MATLAB函数的编译版本。

例子

编码器.RULEST(测试mexfile.替换对MATLAB函数的调用,在函数的编译版本中呼叫函数的函数呼叫mexfile.mexfile.包括特定于平台的文件扩展名。如果mexfile.不包含函数的编译版本,编码器.RULEST.运行原始的matlab函数。如果您不想指定要替换的单个MATLAB函数,请使用此语法。

例子

全部收缩

采用编码器.RULEST.运行测试文件。使用编译版本指定更换一个MATLAB函数。您不提供包含编译版本的MEX函数的名称。所以,编码器.RULEST.查找具有默认名称的MEX函数。

在本地可写文件夹中,创建一个MATLAB函数,myfun.

功能y = myfun(你,v)%#codegen.y = u + v;结尾

在同一文件夹中,创建一个测试功能,mytest1.,那个呼叫myfun.

功能mytest1 c = myfun(10,20);disp(c);结尾

在matlab中运行测试功能。

mytest1.
30.

生成MEX功能myfun.

Codegen.myfun.-  args.{0,0}

在当前文件夹中,Codegen.生成具有默认名称的MEX函数,myfun_mex.

跑步编码器.RULEST.。指定要运行测试文件mytest1.。指定更换myfun.使用编译版本myfun_mex.

编码器.RULEST('mytest1''myfun'
30.

结果与运行时的结果相同mytest1.在matlab命令行。

采用编码器.RULEST.运行测试文件。使用调用编译版本的替换两个函数。指定包含函数的编译版本的MEX函数。

在本地可写文件夹中,创建MATLAB函数,myfun1.

功能y = myfun1(u)%#codegen.y = u;结尾

在同一文件夹中,创建另一个MATLAB函数,myfun2.

功能y = myfun2(u,v)%#codegen.y = u + v;结尾

在同一文件夹中,创建调用的测试功能myfun1.myfun2.

功能mytest2 c1 = myfun1(10);DISP(C1)C2 = MYFUN2(10,20);DISP(C2)结尾

运行测试功能。

mytest2.
10 30.

生成MEX功能myfun1.myfun2.。使用-O选项指定生成的MEX函数的名称。

Codegen.-Omymex.myfun1.-  args.{0}myfun2.-  args.{0,0}

跑步编码器.RULEST.。指定要运行的情况mytest2.。指定要替换呼叫myfun1.myfun2.通过调用MEX函数中的编译版本mymex.

编码器.RULEST('mytest2',{'myfun1''myfun2'},'mymex'
10 30.

结果与运行时的结果相同mytest2.在matlab命令行。

采用编码器.RULEST.要运行一个测试,该测试将呼叫对MATLAB函数的呼叫与编译版本的调用进行调用。指定包含函数的编译版本的MEX函数的文件名。

在本地可写文件夹中,创建MATLAB函数,myfun1.

功能y = myfun1(u)%#codegen.y = u;结尾

在同一文件夹中,创建另一个MATLAB函数,myfun2.

功能y = myfun2(u,v)%#codegen.y = u + v;结尾

在同一文件夹中,创建调用的测试功能myfun1.myfun2.

功能mytest2 c1 = myfun1(10);DISP(C1)C2 = MYFUN2(10,20);DISP(C2)结尾

运行测试。

mytest2.
10 30.

生成MEX功能myfun1.myfun2.。使用-O选项指定生成的MEX函数的名称。

Codegen.-Omymex.myfun1.-  args.{0}myfun2.-  args.{0,0}

跑步编码器.RULEST.。指定要运行的情况mytest2.。指定要替换对函数的调用mytest2.呼叫编译版本mymex.。指定完整的MEX文件名,包括特定于平台的扩展名。采用Mexext.获取特定于平台的扩展名。

编码器.RULEST('mytest2',['mymex。',Mexext])
10 30.

结果与运行时的结果相同mytest2.在matlab命令行。

跑步编码器.RULEST.使用基于类的单元测试。

写下功能adjone.,它为输入添加1。

功能y = addone(x)%#codegen.y = x + 1;结尾

编写基于类的单元测试,验证返回的值adjone.当输入是1并且输入时PI.

Classdef.testaddone 方法(测试)功能signsaddsone(testcase)x = 1;y =附加(x);testcase.verifyequal(y,2);结尾功能Addsfraction(testcase)x = pi;y =附加(x);testcase.verifyequal(y,x + 1);结尾结尾结尾

运行基于类的单元测试,替换呼叫adjone.呼叫呼叫addOne_mex.

编码器.RULEST('testaddone''附加'
运行testAddone ..完成testAddone _____________________tex______textresult = 1×2测试仪器数组0.28516秒测试时间。

输入参数

全部收缩

MATLAB函数,脚本或基于类的单元测试的文件名调用您要为生成的MEX进行测试的MATLAB函数。编码器.RULEST.将呼叫替换为使用呼叫生成的MEX的函数。

例子:'Mytest'

运行测试时matlab函数的名称替换。编码器.RULEST.替换对此函数的编译版本的调用呼叫。

例子:'myfun'

MATLAB的名称函数以在运行测试时替换。编码器.RULEST.替换对这些函数的调用对这些函数的编译版本的调用。

将一个函数指定为字符向量或字符串标量。

例子:'myfun'

例子:“myfun”

将多个函数指定为字符向量的单元格数组。在使用之前编码器.RULEST.,将这些函数编译为单个MEX函数。

例子:{'myfun1','myfun2','myfun3'}

为一个或多个函数生成的MEX函数的名称。

使用使用此MEX功能Matlab Coder™应用程序或者Codegen.功能。

例子:'mymex'

用于一个或多个函数的MEX文件的文件名和特定于平台的扩展。采用Mexext.获取特定于平台的MEX文件扩展名。

使用此MEX文件生成此MEX文件Matlab编码器应用程序或者Codegen.功能。

例子:['myfunmex。',mexext]

数据类型:char

提示

  • 编码器.RULEST.不返回输出。要查看测试结果,请在测试中包含显示结果的代码。

  • 要比较MEX和MATLAB函数行为:

    • 在matlab中运行测试。

    • 采用Codegen.生成MEX功能。

    • 采用编码器.RULEST.要使用对MEX功能中的编译版本拨打对原始功能的呼叫替换呼叫。

  • 在使用之前编码器.RULEST.要测试多个函数,将MATLAB函数编译为单个MEX函数。

  • 如果使用语法编码器.RULEST(测试,MEXFILE), 采用Mexext.获取特定于平台的MEX文件名扩展名。例如:

    编码器.RULEST('my_test',['mymexfun'。,Mexext])

  • 如果在测试期间发生错误,则可以使用呼叫堆栈信息调试代码。

  • 您可以通过运行将MEX生成和测试结合在一步Codegen.与之-测试选项。例如,以下代码生成MEX函数myfunction.并调用测试文件myfunction_test.,更换呼叫myfunction.呼叫呼叫myfunction_mex.

    Codegen.myfunction.-测试myfunction_test.

在R2012A介绍