coder.resize

Изменение размера coder.Type объект

Описание

пример

t_out = coder.resize(t,sz) изменяет размер t иметь размер sz.

пример

t_out = coder.resize(t,sz,variable_dims) возвращает измененную копию coder.Type t с (верхним) размером sz и переменные размерности variable_dims. Если variable_dims или sz являются скалярами, функция применяет скаляры ко всем размерностям t. По умолчанию variable_dims не применяется к размерностям, где sz является 0 или 1, которые являются фиксированными. Используйте опцию 'uniform', чтобы переопределить этот специальный случай. coder.resize функция игнорирует variable_dims для размерностей с inf. Эти размерности являются переменным размером. t может быть массивом ячеек типов, в этом случае, coder.resize изменение размера всех элементов массива ячеек.

пример

t_out = coder.resize(t,[],variable_dims) изменяет t иметь переменные размерности variable_dims оставив размер без изменений.

пример

t_out = coder.resize(t,sz,variable_dims,Name,Value) изменяет размер t при помощи дополнительных опций, заданных одним или несколькими аргументами в виде пар «имя, значение».

пример

t_out = coder.resize(t,'sizelimits',limits) изменение размеров отдельных размерностей t на основе пороговых значений в limits вектор. The limits вектор является вектором-строкой, содержащей два положительных целочисленных элемента. Каждая размерность t индивидуально изменяется в соответствии с порогами в limits вектор.

  • Когда размер S размерности меньше, чем оба порога, заданные в limitsразмерность остается прежней.

  • Когда размер S размерности больше или равен первому порогу и меньше второго порога, заданного в limits, размерность становится размером переменной с верхней границей S.

  • Однако, когда размер S размерности также больше или равен второму порогу, заданному в limits, размерность становится неограниченным размером переменной.

Если значение limits является скалярным, порог получает скалярное расширение, чтобы представлять оба порога. Для примера, если limits определяется как 4, это интерпретируется как [4 4].

The 'sizelimits' опция позволяет динамически выделять память большим массивам в сгенерированном коде.

Примеры

свернуть все

Измените массив фиксированного размера на неограниченный массив переменного размера.

t = coder.typeof(ones(3,3))     
t = 

coder.PrimitiveType
   3×3 double
coder.resize(t,inf)           
ans = 

coder.PrimitiveType
   :inf×:inf double
% ':' indicates variable-size dimensions

Измените массив фиксированного размера на ограниченный массив переменного размера.

t = coder.typeof(ones(3,3))
t = 

coder.PrimitiveType
   3×3 double
coder.resize(t,[4 5],1)
ans = 

coder.PrimitiveType
   :4×:5 double
% ':' indicates variable-size dimensions

Измените размер поля структуры.

ts = coder.typeof(struct('a',ones(3, 3))) 
ts = 

coder.StructType
   1×1 struct
      a: 3×3 double
coder.resize(ts,[5, 5],'recursive',1)   
ans = 

coder.StructType
   5×5 struct
      a: 5×5 double

Измените размер массива ячеек.

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

coder.CellType
   1×3 homogeneous cell 
      base: 1×1 double
coder.resize(tc,[5, 5],'recursive',1)   
ans = 

coder.CellType
   5×5 homogeneous cell 
      base: 1×1 double

Измените массив фиксированного размера на размер переменной на основе ограниченных и неограниченных порогов.

t = coder.typeof(ones(100,200))
t = 

coder.PrimitiveType
   100×200 double
coder.resize(t,'sizelimits',[99 199])   
ans = 

coder.PrimitiveType
   :100×:inf double
% ':' indicates variable-size dimensions

Входные параметры

свернуть все

Набор вектора-строки порогов переменного размера. Если значение limits скаляром, порог получает скалярно-расширенный. Если размер sz размерности t больше или равно первому порогу и меньше второго порога, заданного в limits, размерность становится размером переменной с верхней границей sz. Если размер sz размерности t также больше или равно второму порогу, размерность становится неограниченным размером переменной.

Однако, если размер sz меньше обоих порогов, размерность остается неизменной.

Пример: coder.resize(t,'sizelimits',[99 199]);

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Новый размер для coder.Type объект, t_out

Пример: coder.resize(t,[3,4]);

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Если t является coder.CellType объект, coder.CellType объект должен быть однородным.

Пример: coder.resize(t,inf);

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | table | cell | function_handle | categorical | datetime | duration | calendarDuration | fi
Поддержка комплексного числа: Да

Задайте, каждый ли размерность t_out фиксированный размер или переменный размер.

Пример: coder.resize(t,[4 5],1);

Типы данных: logical

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: coder.resize(t,[5, 5],'recursive', 1);

Настройка recursive на true изменяет размер t и все типы, содержащиеся в нем.

Типы данных: logical

Настройка uniform на true изменяет размер t и применяет эвристику для размерностей первого размера.

Эвристика работает следующим образом:

  • Если variable_dims является скалярным trueвсе размерности изменяются на верхние размеры связанных переменных, указанные в sz. Это включает размерности одного размера. Для примера:

    t = coder.typeof(1, [1 5]);
    tResize = coder.resize(t,[1 7],true,'uniform',true); 

    Это генерирует объект tResize как показано:

    tResize = 
    
    coder.PrimitiveType
       :1×:7 double
    
        Edit Type Object
  • Если вы задаете uniform на true с 'sizelimits' опция, размерности одного размера также изменяются в переменный размер, согласно 'sizelimits' эвристика. Для примера:

    t = coder.typeof(1, [1 5]);
    tResize = coder.resize(t,[],'sizelimits',[0 6],'uniform',true); 

    Эти команды генерируют объект tResize как показано:

    tResize = 
    
    coder.PrimitiveType
       :1×:5 double
    
        Edit Type Object
  • Если variable_dims задается как некалярная логика, uniform настройка не влияет. Однако, если variable_dims скаляром и uniform установлено в falseИзменяются только размерности размером больше единицы.

Типы данных: logical

Использование sizelimits опции с limits вектор изменяет размер отдельных размерностей t.

t = coder.typeof(1, [1 5]);
tResize = coder.resize(t,[],'sizelimits',[0 6],'uniform',true); 

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Измененный размер coder.Type объект

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | table | cell | function_handle | categorical | datetime | duration | calendarDuration | fi
Поддержка комплексного числа: Да

Ограничения

  • Для разреженных матриц, coder.resize отбрасывает верхние границы для размерностей переменного размера.

См. также

| |

Введенный в R2011a