exponenta event banner

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

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

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

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

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

Для генерации кода клеточные массивы классифицируются как однородные или гетерогенные. См. раздел Создание кода для массивов ячеек. При предоставлении примера массива ячеек для fiaccel или coder.typeofфункция определяет, является ли тип массива ячеек однородным или гетерогенным. Если элементы массива ячеек имеют одинаковый класс и размер, coder.typeof возвращает однородный тип массива ячеек. Если элементы имеют различные классы, coder.typeof возвращает тип гетерогенного массива ячеек. Для некоторых клеточных массивов классификация как однородная или гетерогенная неоднозначна. Например, тип для {1 [2 3]} может быть гетерогенным типом 1x2. Первый элемент является двойным, а второй элемент - двойным. Тип также может быть однородным типом 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, элементы которого являются двойными.

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

    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, элементы которого являются двойными.

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

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

    Входной аргумент представляет собой массив гетерогенных ячеек 1x2, первый элемент которого является символом 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 и 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 аргументы размера и переменных размеров для создания однородного типа массива ячеек переменного размера. Например, следующий код не использует аргументы размера и переменных размеров. Этот код создает тип для гетерогенного массива ячеек.

    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

  • 1x1 двойной

  • 1x5 символ

  • 1x1 двойной

  • Символ 1x4

  • 1x1 двойной

См. также

| | |

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

Подробнее