持续时间数组的代码生成
持续时间数组中的值以固定长度的单位(如小时、分钟和秒)来表示经过的时间。您可以创建以固定长度(24 小时)的天数和固定长度(365.2425 天)的年数为单位的已用时间。
您可以对持续时间数组执行加法、减法、排序、比较、串联和绘图等操作。
在代码生成中使用持续时间数组时,请遵守这些限制。
为代码生成定义持续时间数组
对于代码生成,请使用 duration
函数创建持续时间数组。例如,假设您的 MATLAB® 函数的输入参量是三个任意大小的数值数组,其元素将时间长度指定为小时、分钟和秒。您可以从这三个输入数组创建一个持续时间数组。
function d = foo(h,m,s) %#codegen d = duration(h,m,s); end
您可以使用 years
、days
、hours
、minutes
、seconds
和 milliseconds
函数以年、日、小时、分钟或秒为单位创建持续时间数组。例如,您可以从输入数值数组创建一个由小时数组成的数组。
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 工具箱函数结合使用: