Datetime Array Limitations for Code Generation

When you create datetime arrays in MATLAB® code that you intend for code generation, you must specify the values by using the datetime function. See Dates and Time (MATLAB).

For datetime arrays, code generation does not support the following inputs and operations:

  • Sparse matrices.

  • Text inputs. For example, specifying a character vector as the input argument produces an error.

    function d = foo() %#codegen
        d = datetime('2019-12-01');
  • The 'Format' name-value pair argument. You cannot specify the display format by using the datetime function, or by setting the Format property of a datetime array. To use a specific display format, create a datetime array in MATLAB, then pass it as an input argument to a function that is intended for code generation.

  • The 'TimeZone' name-value pair argument. All datetime arrays created in code intended for code generation are unzoned.

  • Setting time component properties. For example, setting the Hour property in the following code produces an error:

    d = datetime;
    d.Hour = 2;
  • Growth by assignment. For example, assigning a value beyond the end of an array produces an error.

    function d = foo() %#codegen
        d = datetime(2019,1:12,1,12,0,0);
        d(13) = datetime(2020,1,1,12,0,0);
  • Deleting an element. For example, assigning an empty array to an element produces an error.

    function d = foo() %#codegen
        d = datetime(2019,1:12,1,12,0,0);
        d(1) = [];
  • Converting datetime values to text by using the char, cellstr, or string functions.

Limitations that apply to classes also apply to datetime arrays. For more information, see MATLAB Classes Definition for Code Generation.

See Also


Related Topics