主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

定义时间表输入

您可以在命令行中定义时间表输入。不支持通过使用预条件(assert 语句)以编程方式指定时间表输入类型。

在命令行中定义时间表输入

使用以下过程之一:

或者,如果您有使用示例输入调用入口函数的测试文件,您可以使用 coder.getArgTypes 来确定输入类型。

提供示例时间表输入

使用 -args 选项:

TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);
fiaccel myFunction -args {TT}

提供时间表类型

要为 fiaccel 提供一种时间表类型,请执行以下操作:

  1. 定义一个时间表。例如:

    TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);

  2. T 创建一个类型。

    t = coder.typeof(TT);
    

  3. 通过使用 -args 选项将类型传递给 fiaccel

    fiaccel myFunction -args {t}
    

提供常量时间表输入

要指定时间表输入为常量,请使用 coder.Constant-args 选项:

TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);
fiaccel myFunction -args {coder.Constant(TT)}

时间表的表示

时间表的代码生成器类型对象描述对象及其属性。使用 coder.typeof (MATLAB Coder) 或将 timetable 作为字符串标量传递给 coder.newtype (MATLAB Coder)

代码生成器生成类型对象显示对象属性的简洁描述,同时排除内部状态值。非常量属性显示其类型和大小,而常量属性只显示其值。例如:

t = timetable((1:5)',(11:15)','SampleRate',1);
tType = coder.typeof(t)

变量 t 的表示存储在代码生成器生成类型对象 tType 中。

tType = 

   matlab.coder.type.RegularTimetableType
     5x2 timetable
	                Data : 1x2 homogeneous cell
	         Description : 1x0 char
	            UserData : 0x0 double
	      DimensionNames : {'Time'}    {'Variables'}
	       VariableNames : {'Var1'}    {'Var2'}
	VariableDescriptions : 1x2 homogeneous cell
	       VariableUnits : 1x2 homogeneous cell
	  VariableContinuity : 1x2 matlab.internal.coder.tabular.Continuity
	           StartTime : 1x1 matlab.coder.type.DurationType
	          SampleRate : 1x1 double
	            TimeStep : 1x1 matlab.coder.type.DurationType

通过指定 SampleRateTimeStep 来定义一个规则 timetable。您还可以通过指定 RowTimes 来定义一个不规则 timetable。例如:

t1 = timetable((1:3)','RowTimes',seconds(1:3));
t1Type = coder.typeof(t)

不规则表 t1 的表示存储在代码生成器类型对象 t1Type 中。

t1Type = 

   matlab.coder.type.TimetableType
     3x1 timetable
	                Data : 1x1 homogeneous cell
	         Description : 1x0 char
	            UserData : 0x0 double
	      DimensionNames : {'Time'}    {'Variables'}
	       VariableNames : {'Var1'}
	VariableDescriptions : 1x1 homogeneous cell
	       VariableUnits : 1x1 homogeneous cell
	  VariableContinuity : 1x1 matlab.internal.coder.tabular.Continuity
	            RowTimes : 3x1 matlab.coder.type.DurationType

如果您的工作流需要代码生成器生成类型对象的旧表示,请对具有您的类或对象的新表示的变量使用 getCoderType 函数。请参阅

使用 coder.resize 调整对象属性的大小

您可以使用 coder.resize (MATLAB Coder) 调整大多数对象的大小。您可以调整对象及其属性的大小,并在属性中创建数组。

对于一个 timetable 代码生成器对象,您可以调整对象属性的大小:

t = timetable((1:5)',(11:15)','SampleRate',1);
tType = coder.typeof(t);
tType.UserData = coder.resize(tType.UserData,[10 1],[1 0])

以下代码将 UserData 属性的大小调整为 :10x1 double 属性。第一个维度的上界为 10

tType = 

   matlab.coder.type.RegularTimetableType
     5x2 timetable
	                Data : 1x2 homogeneous cell
	         Description : 1x0 char
	            UserData : :10x1 double
	      DimensionNames : {'Time'}    {'Variables'}
	       VariableNames : {'Var1'}    {'Var2'}
	VariableDescriptions : 1x2 homogeneous cell
	       VariableUnits : 1x2 homogeneous cell
	  VariableContinuity : 1x2 matlab.internal.coder.tabular.Continuity
	           StartTime : 1x1 matlab.coder.type.DurationType
	          SampleRate : 1x1 double
	            TimeStep : 1x1 matlab.coder.type.DurationType

您也可以使用 coder.resize 调整对象的大小。请参阅

另请参阅

| (MATLAB Coder) | (MATLAB Coder)

主题