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

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

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

  • Предоставьте объект coder.CellType опции -args команды fiaccel. Чтобы создать объект coder.CellType, используйте coder.typeof.

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

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

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

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

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

Например:

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

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

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

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

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

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

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

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

Например:

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

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

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

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

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

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

Можно также использовать усовершенствованный функциональный coder.newtype, чтобы создать объект 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.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.Constant с опцией -args команды fiaccel. Например:

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

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

  • 1x3 char

  • 1x1 дважды

  • 1x5 char

  • 1x1 дважды

  • 1x4 char

  • 1x1 дважды

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

| | |

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

Больше о