定义时间表输入
您可以在命令行中定义时间表输入。不支持通过使用预条件(assert
语句)以编程方式指定时间表输入类型。
在命令行中定义时间表输入
使用以下过程之一:
或者,如果您有使用示例输入调用入口函数的测试文件,您可以使用 coder.getArgTypes
来确定输入类型。
提供示例时间表输入
使用 -args
选项:
TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames); fiaccel myFunction -args {TT}
提供时间表类型
要为 fiaccel
提供一种时间表类型,请执行以下操作:
定义一个时间表。例如:
TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);
从
T
创建一个类型。t = coder.typeof(TT);
通过使用
-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
通过指定 SampleRate
或 TimeStep
来定义一个规则 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
调整对象的大小。请参阅。
另请参阅
timetable
| coder.Constant
(MATLAB Coder) | coder.typeof
(MATLAB Coder)