Main Content

代码生成的日期时间数组限制

当您在打算用于代码生成的 MATLAB® 代码中创建 datetime 数组时,必须使用 datetime 函数指定值。请参阅日期时间

对于 datetime 数组,代码生成不支持以下输入和操作:

  • 文本输入。例如,将字符向量指定为输入参数会生成错误。

    function d = foo() %#codegen
        d = datetime('2019-12-01');
    end
    
  • 'Format' 名称-值对组参数。无法通过使用 datetime 函数或通过设置 datetime 数组的 Format 属性来指定显示格式。要使用某特定显示格式,请在 MATLAB 中创建一个 datetime 数组,然后将其作为输入参数传递给用于代码生成的函数。

  • 'TimeZone' 名称-值对组参数和 TimeZone 属性。当您在用于代码生成的代码中使用 datetime 数组时,这些数组必须未设置时区。

  • 设置时间分量属性。例如,在以下代码中设置 Hour 属性会生成错误:

    d = datetime;
    d.Hour = 2;
    
  • 通过赋值实现增长。例如,在数组末尾以外赋值会生成错误。

    function d = foo() %#codegen
        d = datetime(2019,1:12,1,12,0,0);
        d(13) = datetime(2020,1,1,12,0,0);
    end
    
  • 删除元素。例如,将空数组赋给元素会生成错误。

    function d = foo() %#codegen
        d = datetime(2019,1:12,1,12,0,0);
        d(1) = [];
    end
    
  • 使用 charcellstrstring 函数将 datetime 值转换为文本。

适用于类的限制也适用于 datetime 数组。有关详细信息,请参阅 用于代码生成的 MATLAB 类定义 (MATLAB Coder)

另请参阅

|

相关主题