Задайте входные параметры массива ячеек в командной строке

Чтобы задать входные параметры массива ячеек в командной строке, используйте те же методы, которые вы используете для других типов входных параметров. Вы можете:

  • Предоставьте вход массива ячеек в качестве примера -args опция codegen команда.

  • Обеспечьте coder.CellType возразите против -args опция codegen команда. Создать coder.CellType объект, использовать coder.typeof.

  • Использование coder.Constant задавать постоянный вход массива ячеек.

Для генерации кода массивы ячеек классифицируются как гомогенные или неоднородные. Смотрите Генерацию кода для Массивов ячеек. Когда вы предоставляете массив ячеек в качестве примера codegen или coder.typeof, функция определяет, является ли тип массива ячеек гомогенным или неоднородным. Если элементы массива ячеек имеют тот же класс и размер, coder.typeof возвращает гомогенный тип массива ячеек. Если элементы имеют различные классы, coder.typeof возвращает неоднородный тип массива ячеек. Для некоторых массивов ячеек классификация как гомогенная или неоднородная неоднозначна. Например, тип для {1 [2 3]} может быть 1x2 неоднородный тип. Первый элемент является двойным, и второй элемент 1x2 дважды. Тип может также быть 1x3 гомогенный тип, в котором элементы имеют класс дважды и размер 1x:2. Для этих неоднозначных случаев, coder.typeof эвристика использования, чтобы классифицировать тип как гомогенный или неоднородный. Если вы хотите различную классификацию, используйте coder.CellType makeHomogeneous или makeHeterogeneous методы. makeHomogeneous метод делает гомогенную копию типа. makeHeterogeneous метод делает неоднородную копию типа.

makeHomogeneous и makeHeterogeneous методы постоянно присваивают классификацию как гомогенную и неоднородную, соответственно. Вы не можете дальнейшее использование один из этих методов, чтобы создать копию, которая имеет различную классификацию.

Если у вас есть тестовый файл, можно использовать coder.getArgTypes определить входные типы. В выходном массиве ячеек типов, для входных параметров массива ячеек, coder.getArgTypes возвращает coder.CellType объект. Если вы хотите различную классификацию (гомогенный или неоднородный), используйте makeHomogeneous или makeHeterogeneous методы.

Задайте входные параметры массива ячеек на примере

Чтобы задать вход массива ячеек на примере, обеспечьте массив ячеек в качестве примера в -args опция codegen команда.

Например:

  • Чтобы задать 1x3 массив ячеек, элементы которого имеют класс дважды:

    codegen myfunction -args {{1 2 3}} -report

    Входной параметр 1x3 гомогенный массив ячеек, элементы которого 1x1 дважды.

  • Чтобы задать 1x2 массив ячеек, первый элемент которого имеет char класса и чей второй элемент имеет класс дважды:

    codegen myfunction -args {{'a', 1}} -report

    Входной параметр 1x2 неоднородный массив ячеек, первый элемент которого 1x1 char и чей второй элемент 1x1 дважды.

Задайте тип входа массива ячеек

Чтобы задать тип входа массива ячеек, использовать coder.typeof создать a coder.CellType объект. Передайте coder.CellType возразите против -args опция codegen команда.

Например:

  • Чтобы задать 1x3 массив ячеек, элементы которого имеют класс дважды:

    t = coder.typeof({1 2 3});
    codegen myfunction -args {t} -report

    Входной параметр 1x3 гомогенный массив ячеек, элементы которого 1x1 дважды.

  • Чтобы задать 1x2 массив ячеек, первый элемент которого имеет char класса и чей второй элемент имеет класс дважды:

    t = coder.typeof({'a', 1});
    codegen myfunction -args {t}

    Входной параметр 1x2 неоднородный массив ячеек, первый элемент которого 1x1 char и чей второй элемент 1x1 дважды.

Можно также использовать усовершенствованную функцию coder.newtype создать a coder.CellType объект.

Сделайте гомогенную копию типа

Если coder.typeof возвращает неоднородный тип массива ячеек, но вы хотите гомогенный тип, используйте makeHomogeneous метод, чтобы сделать гомогенную копию типа.

Следующий код создает неоднородный тип.

t = coder.typeof({1 [2 3]})
t = 

coder.CellType
   1x2 heterogeneous cell 
      f0: 1x1 double
      f1: 1x2 double

Чтобы сделать гомогенную копию типа, используйте:

t = makeHomogeneous(t)
t = 

coder.CellType
   1×2 locked homogeneous cell 
      base: 1×:2 double

В качестве альтернативы используйте это обозначение:

t = makeHomogeneous(coder.typeof({1 [2 3]}))
t = 

coder.CellType
   1×2 locked homogeneous cell 
      base: 1×:2 double

Классификация как гомогенная заблокирована (постоянная). Вы не можете дальнейшее использование makeHeterogeneous метод, чтобы сделать неоднородную копию типа.

Если элементы типа имеют различные классы, такие как char и дважды, вы не можете использовать makeHomogeneous сделать гомогенную копию типа.

Если вы используете coder.cstructname чтобы задать имя для типа структуры, который представляет тип в сгенерированном коде, вы не можете создать гомогенную копию типа.

Сделайте неоднородную копию типа

Если coder.typeof возвращает гомогенный тип массива ячеек, но вы хотите неоднородный тип, используйте makeHeterogeneous метод, чтобы сделать неоднородную копию типа.

Следующий код создает гомогенный тип.

t = coder.typeof({1 2 3})
t = 

coder.CellType
   1x3 homogeneous cell 
      base: 1x1 double

Чтобы сделать тип неоднородным, используйте:

t = makeHeterogeneous(t)
t = 

coder.CellType
   1×3 locked heterogeneous cell 
      f1: 1×1 double
      f2: 1×1 double
      f3: 1×1 double

В качестве альтернативы используйте это обозначение:

t = makeHeterogeneous(coder.typeof({1 2 3}))
t = 

coder.CellType
   1×3 locked heterogeneous cell 
      f1: 1×1 double
      f2: 1×1 double
      f3: 1×1 double

Классификация как неоднородная заблокирована (постоянная). Вы не можете дальнейшее использование makeHomogeneous метод, чтобы сделать гомогенную копию типа.

Если тип является переменным размером, вы не можете использовать makeHeterogeneous сделать неоднородную копию из него.

Задайте входные параметры массива ячеек Переменного Размера

Можно задать входные параметры массива ячеек переменного размера следующими способами:

  • В coder.typeof вызвать.

    Например, чтобы задать массив ячеек переменного размера, первая размерность которого фиксируется и чье второе измерение имеет верхнюю границу 5:

    t = coder.typeof({1}, [1 5], [0 1])
    t = 
    
    coder.CellType
       1x:5 homogeneous cell 
          base: 1x1 double

    Для элементов с теми же классами, но различных размеров, вы можете использование coder.typeof размер и переменные аргументы размерностей, чтобы создать переменный размер гомогенный тип массива ячеек. Например, следующий код не использует размер и переменные аргументы размерностей. Этот код создает тип для неоднородного массива ячеек.

    t = coder.typeof({1 [2 3]})
    t = 
    
    coder.CellType
       1x2 heterogeneous cell 
          f0: 1x1 double
          f1: 1x2 double

    Следующий код, который использует размер и аргументы размерностей, создает тип для переменного размера гомогенный массив ячеек типа:

    t = coder.typeof({1 [2 3]}, [1 5], [0 1])
    t = 
    
    coder.CellType
       1×:5 locked homogeneous cell 
          base: 1×:2 double
  • Использование coder.resize.

    Например, чтобы задать массив ячеек переменного размера, первая размерность которого фиксируется и чье второе измерение имеет верхнюю границу 5:

    t = coder.typeof({1});
    t = coder.resize(t, [1 5], [0,1])
    t = 
    
    coder.CellType
       1x5 homogeneous cell 
          base: 1x1 double

    Вы не можете использовать coder.resize с неоднородным типом массива ячеек.

Задайте имя типа для неоднородных входных параметров массива ячеек

Неоднородный массив ячеек представлен в сгенерированном коде как структура. Чтобы задать имя типа структуры в сгенерированном коде, использовать coder.cstructname.

Например, чтобы задать имя myname поскольку массив ячеек вводит в сгенерированном коде:

t = coder.typeof({'a', 1})
t = coder.cstructname(t, 'myname')
t = 

coder.CellType
   1×2 locked heterogeneous cell myname
      f1: 1×1 char
      f2: 1×1 double

Если вы используете coder.cstructname с гомогенным типом массива ячеек, coder.cstructname возвращает неоднородную копию типа. Однако это - лучшая практика использовать makeHeterogeneous метод coder.CellType объект сделать неоднородную копию гомогенного типа массива ячеек. Затем можно использовать coder.cstructname с неоднородной копией типа.

Задайте постоянные входные параметры массива ячеек

Чтобы указать, что вход массива ячеек является постоянным, используйте coder.Constant функция с -args опция codegen команда. Например:

codegen myfunction -args {coder.Constant({'red', 1  'green', 2,  'blue', 3})} -report

Вход 1x6 неоднородный массив ячеек. Размеры и классы элементов:

  • 1x3 char

  • 1x1 дважды

  • 1x5 char

  • 1x1 дважды

  • 1x4 char

  • 1x1 дважды

Смотрите также

| | | |

Связанные примеры

Больше о

Для просмотра документации необходимо авторизоваться на сайте