Расширьте вектор или матрицу
YEXT= wextend(TYPE,MODE,X,LEN)
YEXT = wextend(___,LOC)
также задает местоположение расширения.YEXT
= wextend(___,LOC
)
Расширьте вектор
Расширьте вектор с помощью многих различных методов.
Создайте вектор и установите дополнительную длину на 2.
len = 2; x = [1 2 3]
x = 1×3
1 2 3
Выполните расширение нулевой клавиатуры. Чтобы проверить, что различные формы входных параметров возможны, выполните это расширение дважды. Результат те же оба раза.
xextzpd1 = wextend('1','zpd',x,len)
xextzpd1 = 1×7
0 0 1 2 3 0 0
xextzpd2 = wextend('1D','zpd',x,len,'b')
xextzpd2 = 1×7
0 0 1 2 3 0 0
Выполните полуточку симметричное расширение.
xextsym = wextend('1D','sym',x,len)
xextsym = 1×7
2 1 1 2 3 3 2
Выполните периодическое расширение. Поскольку входной вектор имеет нечетную длину, wextend добавляет дополнительный пример в конец прежде, чем расширить использование режима 'PPD'. Эта выборка равна последнему значению справа.
xextper = wextend('1D','per',x,len)
xextper = 1×8
3 3 1 2 3 3 1 2
Расширьте матрицу
Расширьте небольшую матрицу с помощью многих различных методов.
Создайте матрицу и установите дополнительную длину на 2.
len = 2; X = [1 2 3; 4 5 6]
X = 2×3
1 2 3
4 5 6
Выполните расширение нулевой клавиатуры массива.
Xextzpd = wextend(2,'zpd',X,len)
Xextzpd = 6×7
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 1 2 3 0 0
0 0 4 5 6 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Выполните полуточку симметричное расширение массива.
Xextsym = wextend('2D','sym',X,len)
Xextsym = 6×7
5 4 4 5 6 6 5
2 1 1 2 3 3 2
2 1 1 2 3 3 2
5 4 4 5 6 6 5
5 4 4 5 6 6 5
2 1 1 2 3 3 2
uint8
вне пределов области значенийНаблюдайте эффекты симметричных, антисимметричных, и сглаживайте расширения на векторе uint8
, когда значения будут в или около пределов области значений типа данных.
Симметричные расширения
Самое маленькое целое число uint8
0, и самое большое 255. Создайте вектор целых чисел uint8
, который включает те пределы.
dataVector = uint8([0 1 2 253 254 255])
dataVector = 1x6 uint8 row vector
0 1 2 253 254 255
Получите самое главное и полуукажите симметричные расширения вектора. Расширьте вектор двумя значениями слева и правом.
wholePointSym = wextend('1','symw',dataVector,2)
wholePointSym = 1x10 uint8 row vector
2 1 0 1 2 253 254 255 254 253
halfPointSym = wextend('1','symh',dataVector,2)
halfPointSym = 1x10 uint8 row vector
1 0 0 1 2 253 254 255 255 254
Расширение симметрично никогда не приводит к значениям вне области значений uint8
.
Антисимметричные расширения
Создайте тип копия double
вектора, и затем получите самое главное антисимметричное расширение копии. Расширение включает отрицательные величины и значения, больше, чем 255.
dataVectorDouble = double(dataVector); wholePointAsymDouble = wextend('1','asymw',dataVectorDouble,2)
wholePointAsymDouble = 1×10
-2 -1 0 1 2 253 254 255 256 257
Получите самое главное антисимметричное расширение исходного вектора uint8
. Значения вне области значений uint8
сопоставлены с самым близким целым числом uint8
, которое является 0 для отрицательных величин и 255 для значений, больше, чем 255.
wholePointAsym = wextend('1','asymw',dataVector,2)
wholePointAsym = 1x10 uint8 row vector
0 0 0 1 2 253 254 255 255 255
Теперь получите полуточку антисимметричные расширения копии double
и исходного вектора uint8
.
halfPointAsymDouble = wextend('1','asymh',dataVectorDouble,2)
halfPointAsymDouble = 1×10
-1 0 0 1 2 253 254 255 -255 -254
halfPointAsym = wextend('1','asymh',dataVector,2)
halfPointAsym = 1x10 uint8 row vector
0 0 0 1 2 253 254 255 0 0
Как с самым главным антисимметричное расширение, отрицательные величины в расширенных данных uint8
сопоставлены с 0.
Сглаженные расширения
Получите порядок 0 сглаженные расширения копии double
и исходного вектора uint8
.
smooth0Double = wextend('1','sp0',dataVectorDouble,2)
smooth0Double = 1×10
0 0 0 1 2 253 254 255 255 255
smooth0 = wextend('1','sp0',dataVector,2)
smooth0 = 1x10 uint8 row vector
0 0 0 1 2 253 254 255 255 255
Результаты идентичны. Затем, получите сглаженное расширение порядка 1 каждого вектора.
smooth1Double = wextend('1','sp1',dataVectorDouble,2)
smooth1Double = 1×10
-2 -1 0 1 2 253 254 255 256 257
smooth1 = wextend('1','sp1',dataVector,2)
smooth1 = 1x10 uint8 row vector
0 0 0 1 2 253 254 255 255 255
Значения в результате double
, которые являются вне области значений uint8
, сопоставлены с самыми близкими значениями uint8
в расширении uint8
.
int8
вне пределов области значенийНаблюдайте эффекты симметричных, антисимметричных, и сглаживайте расширения данных int8
, когда значения будут в или около пределов области значений типа данных.
Симметричные расширения
Самое маленькое целое число int8
, и самое большое равняется 127. Создайте вектор целых чисел int8
, который включает те пределы.
dataVector = int8([-128 -127 -126 125 126 127])
dataVector = 1x6 int8 row vector
-128 -127 -126 125 126 127
Получите самое главное и полуукажите симметричные расширения данных. Расширьте вектор двумя значениями слева и правом.
wholePointSym = wextend('1','symw',dataVector,2)
wholePointSym = 1x10 int8 row vector
-126 -127 -128 -127 -126 125 126 127 126 125
halfPointSym = wextend('1','symh',dataVector,2)
halfPointSym = 1x10 int8 row vector
-127 -128 -128 -127 -126 125 126 127 127 126
Расширение симметрично никогда не приводит к значениям вне области значений int8
.
Антисимметричные расширения
Создайте тип копия double
вектора, и затем получите самое главное антисимметричное расширение копии. Расширение включает отрицательные величины меньше, чем и значения, больше, чем 127.
dataVectorDouble = double(dataVector); wholePointsAsymDouble = wextend('1','asymw',dataVectorDouble,2)
wholePointsAsymDouble = 1×10
-130 -129 -128 -127 -126 125 126 127 128 129
Получите самое главное антисимметричное расширение исходного вектора int8
. Значения вне области значений int8
сопоставлены с самым близким целым числом int8
, которое является для значений меньше, чем и 127 для значений, больше, чем 127.
wholePointAsym = wextend('1','asymw',dataVector,2)
wholePointAsym = 1x10 int8 row vector
-128 -128 -128 -127 -126 125 126 127 127 127
Теперь получите полуточку антисимметричные расширения копии double
и исходного вектора int8
.
halfPointAsymDouble = wextend('1','asymh',dataVectorDouble,2)
halfPointAsymDouble = 1×10
127 128 -128 -127 -126 125 126 127 -127 -126
halfPointAsym = wextend('1','asymh',dataVector,2)
halfPointAsym = 1x10 int8 row vector
127 127 -128 -127 -126 125 126 127 -127 -126
В результате double
первое значение равняется 127, который может быть представлен как целое число int8
. Второе значение равняется 128, который не может быть представлен как целое число int8
. Поэтому в результате int8
, это сопоставляется с 127. Остающиеся значения в типе результат double
могут все быть представлены как целые числа int8
.
Сглаженные расширения
Получите порядок 0 сглаженные расширения копии double
и исходного вектора int8
.
smooth0Double = wextend('1','sp0',dataVectorDouble,2)
smooth0Double = 1×10
-128 -128 -128 -127 -126 125 126 127 127 127
smooth0 = wextend('1','sp0',dataVector,2)
smooth0 = 1x10 int8 row vector
-128 -128 -128 -127 -126 125 126 127 127 127
Результаты идентичны. Теперь получите сглаженное расширение порядка 1 каждого вектора.
smooth1Double = wextend('1','sp1',dataVectorDouble,2)
smooth1Double = 1×10
-130 -129 -128 -127 -126 125 126 127 128 129
smooth1 = wextend('1','sp1',dataVector,2)
smooth1 = 1x10 int8 row vector
-128 -128 -128 -127 -126 125 126 127 127 127
Значения в результате double
вне области значений int8
сопоставлены с самыми близкими значениями int8
в расширении int8
.
Ввод
Дополнительный метод'1'
| '1d'
| '1D'
| 2 | '2'
| '2d'
| '2D'
| 'ar'
| 'addrow'
| 'ac'
| 'addcol'
Дополнительный метод используется на входе, заданном как одно из значений, перечисленных здесь.
TYPE | Описание |
---|---|
1 , '1' , '1d' или '1D' |
1D расширение |
2 , '2' , '2d' или '2D' |
2D расширение |
'ar' или 'addrow' |
Добавьте строки |
'ac' или 'addcol' |
Добавьте столбцы |
Типы данных: double
| char
Режим
Определенное расширение'zpd'
| 'sp0'
| 'spd'
| 'sp1'
| 'sym'
| 'symh'
| 'symw'
| 'asym'
| 'asymh'
| 'asymw'
| 'ppd'
| 'per'
Определенный дополнительный метод, чтобы использовать, чтобы расширить вход, заданный как одно из значений, перечисленных здесь.
MODE |
Описание |
---|---|
'zpd' |
Дополнение нулями |
'sp0' |
Сглаживайте расширение порядка 0 |
'spd' (or 'sp1') |
Сглаживайте расширение порядка 1 |
'sym' или 'symh' |
Симметричное дополнение (половина точки): граничное значение симметричная репликация |
'symw' |
Симметричное дополнение (самое главное): граничное значение симметричная репликация |
'asym' или 'asymh' |
Антисимметричное дополнение (половина точки): граничное значение антисимметричная репликация |
'asymw' |
Антисимметричное дополнение (самое главное): граничное значение антисимметричная репликация |
'ppd' |
Расширение Periodized (1) |
'per' | Расширение Periodized (2) Если длина сигнала нечетна, |
Для получения дополнительной информации о симметричных дополнительных режимах см. [1].
Дополнительные режимы 'sp0'
и 'spd'
(или 'sp1'
) бросают данные внутренне к двойной точности прежде, чем выполнить расширение. Для целочисленных типов данных wextend
предупреждает, если одно из следующего происходит.
Преобразование, чтобы удвоиться вызывает потерю точности.
Требуемое расширение приводит к целым числам вне области значений, где числа двойной точности могут представлять последовательные целые числа точно.
Типы данных: char
X
Входные данныеВходные данные, заданные как вектор с действительным знаком или матрица.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
LEN
— Продолжительность расширенияПродолжительность расширения, заданного как неотрицательный целочисленный или двухэлементный вектор неотрицательных целых чисел. Можно расширить матрицу путем выражения LEN
как [LROW,LCOL]
, где LROW
является количеством строк, чтобы добавить, и LCOL
является количеством столбцов, чтобы добавить. Можно выполнить 2D расширение матрицы той же суммой в обоих направлениях путем определения LEN
как одного целого числа.
Расширение длины 0 эквивалентно пустому расширению.
Пример: wextend('2D','sym',[1 2 3 4;5 6 7 8],[2 0])
расширяет только две строки и две строки вниз.
LOC
— Местоположение расширения'l'
| 'u'
| 'r'
| 'd'
| 'b'
| 'n'
| 2D символьный массивМестоположение расширения, заданного как один или пара следующего:
L
Расширение оставлено
U
Расширение
R
Дополнительное право
D
Расширение вниз
B
Расширение с обеих сторон
N
Пустое расширение
Допустимое и значения по умолчанию для LOC
и поведение LEN
, зависят от заданного TYPE
.
Ввод | LOC |
---|---|
1, '1', 1d' или '1D' | 'l' , 'u' , 'r' , 'd' , 'b' или 'n' Пример: wextend('1D','zpd',X,3,'r') расширяет входной вектор X три элемента направо.Значение по умолчанию: 'b' LEN является продолжительностью расширения. |
2, '2', '2d' или '2D' | [LOCROW,LOCCOL] , где LOCROW и LOCCOL являются 1D дополнительными местоположениями или 'n' (ни один). Пример: wextend('2D','zpd',X,[2 3],'ub') расширяет входной вектор или матричный X две строки и три столбца с обеих сторон.Значение по умолчанию: 'bb' LEN , заданный как [LROW,LCOL] , является количеством строк и столбцов, чтобы добавить. |
'ar' или 'addrow' | 'l' , 'u' , 'r' , 'd' , 'b' или 'n' Пример: wextend('addrow','zpd',X,4,'d') расширяет входной вектор или матричный X четыре строки вниз.Значение по умолчанию: 'b' LEN является количеством строк, чтобы добавить. |
'ac' или 'addcol' | 'l' , 'u' , 'r' , 'd' , 'b' или 'n' Пример: wextend('addcol','zpd',X,1,'l') расширяет входной вектор или матричный X один столбец налево.Значение по умолчанию: 'b' LEN является количеством столбцов, чтобы добавить. |
Для большинства приложений вейвлета хорошо работает или периодическое дополнительное или симметричное расширение.
Когда значение вне области значений типа входных данных, wextend
сопоставляет его с самым близким значением типа входных данных. Для примеров данных, расширяемых вне области значений типа данных, смотрите, Расширяют uint8 Данные Вне Пределов Области значений и Расширяют int8 Данные Вне Пределов Области значений.
[1] Странг, G. и Т. Нгуен. Вейвлеты и наборы фильтров. Веллесли, MA: Wellesley-Кембриджское нажатие, 1996.
Указания и ограничения по применению:
Сгенерированный код может возвратить вектор-столбец, когда MATLAB® возвращает вектор - строку, если все следующие условия верны:
TYPE
задает 1D расширение.
Вход X
является вектором переменного размера.
Вход X
не является вектором - строкой переменной длины (1 :).
Генерация кода не производит предупреждающее сообщение или сообщение об ошибке о несоответствии формы. В выходном векторе, который возвращает сгенерированный код, значения совпадают со значениями в выходном векторе, который возвращает MATLAB.
В этом случае, чтобы сгенерировать код, который возвращает вектор - строку, передача X(:).'
вместо X
.
Вход X
должен иметь тип double
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.