Main Content

持续时间数组的代码生成

持续时间数组中的值以固定长度的单位(如小时、分钟和秒)来表示经过的时间。您可以创建以固定长度(24 小时)的天数和固定长度(365.2425 天)的年数为单位的已用时间。

您可以对持续时间数组执行加法、减法、排序、比较、串联和绘图等操作。

在代码生成中使用持续时间数组时,请遵守这些限制。

为代码生成定义持续时间数组

对于代码生成,请使用 duration 函数创建持续时间数组。例如,假设您的 MATLAB® 函数的输入参数是三个任意大小的数值数组,其元素将时间长度指定为小时、分钟和秒。您可以从这三个输入数组创建一个持续时间数组。

function d = foo(h,m,s) %#codegen
    d = duration(h,m,s);
end

您可以使用 yearsdayshoursminutessecondsmilliseconds 函数以年、日、小时、分钟或秒为单位创建持续时间数组。例如,您可以从输入数值数组创建一个由小时数组成的数组。

function d = foo(h) %#codegen
    d = hours(h);
end

允许对持续时间数组执行的操作

对于代码生成,您只能对持续时间数组执行下表中列出的操作。

运算示例注释

赋值运算符:=

d = duration(1:3,0,0);
d(1) = hours(5);

代码生成不支持使用赋值运算符 = 进行以下操作:

  • 删除元素。

  • 扩展持续时间数组的大小。

关系运算符:< > <= >= == ~=

d = duration(1:3,0,0);
tf = d(1) < d(2);

代码生成支持关系运算符。

索引操作

d = duration(1:3,0,0);
idx = [1 2];
d(idx);
idx = logical([1 1 0]);
d(idx);

代码生成支持按位置索引、线性索引和逻辑索引。

串联

d1 = duration(1:3,0,0);
d2 = duration(4,30,0);
d = [d1 d2];

代码生成支持持续时间数组的串联。

支持持续时间数组的 MATLAB 工具箱函数

对于代码生成,您可以将持续时间数组与以下 MATLAB 工具箱函数结合使用:

相关主题