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, которые фиксируются. Используйте 'универсальную' опцию, чтобы заменить этот особый случай. 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 вектор. limits вектор является вектором-строкой, содержащим два положительных целочисленных элемента. Каждая размерность t индивидуально изменен согласно порогам в limits вектор.

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

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

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

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

'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);

Типы данных: логический

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

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

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

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

Типы данных: логический

Установка 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, только размерности размера, больше, чем, каждый изменен.

Типы данных: логический

Используя 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