Чтобы задать входные данные массива ячеек в командной строке, используйте те же методы, что и для других типов входных данных. Вы можете:
Предоставьте пример ввода массива ячеек в -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 двойной
coder.CellType | coder.newtype | coder.resize | coder.typeof