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

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

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

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

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

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

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

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

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

Для примера:

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

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

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

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

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

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

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

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

Для примера:

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

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

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

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

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

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

Вы также можете использовать расширенную функцию 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 и double, вы не можете использовать 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 size и аргументы переменных размерностей для создания однородного типа массива ячеек переменного размера. Например, в следующем коде не используются аргументы size и переменные размерности. Этот код создает тип для гетерогенного массива ячеек.

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

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

    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 double

  • 1x5 char

  • 1x1 double

  • 1x4 char

  • 1x1 double

См. также

| | |

Похожие примеры

Подробнее о