exponenta event banner

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 с помощью дополнительных параметров, заданных одним или несколькими аргументами пары Name и Value.

пример

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

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

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

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

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

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

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

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

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

  • Если 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' размеры размера 1 также изменяются до переменного размера в соответствии с '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