Сортировка входных элементов по значению
Системный тулбокс/статистика DSP
Блок Sort ранжирует значения входных элементов вдоль каждого канала (столбца) в Ascending
или Descending
порядок, на основе заданных Sort order. Комплексные входы сортируются по их величине, которая является суммой квадратов действительных и мнимых компонентов входа. Можно выбрать любой из Sort algorithm Quick sort
или Insertion sort
. Алгоритм быстрой сортировки использует рекурсивный метод сортировки и быстрее сортирует более 32 элементов. Алгоритм сортировки вставки использует нерекурсивный метод и быстрее сортирует менее 32 элементов. Когда вы генерируете код, используйте алгоритм сортировки вставки, чтобы избежать рекурсивных вызовов функции.
Параметр Mode задает режим работы блока, который можно задать равным Value
, Index
, или Value and Index
.
Port_1
- Вход данныхБлок принимает реальные или комплексные многоканальные входы. Тип входных данных должен быть двойной точности, одинарной точности, целого числа или фиксированной точки с степенью наклона два и нулевым смещением.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Поддержка комплексного числа: Да
Val
- Отсортированные данныеБлок сортирует данные по каждому каналу и выводит отсортированные данные через этот порт. Размер, тип данных и сложность отсортированных данных совпадают с размером входных данных. Блок сортирует комплексные входы согласно их величине.
Чтобы включить этот порт, установите параметр Mode равным Value and index
или Value
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Поддержка комплексного числа: Да
Idx
- Индекс отсортированных данныхВыходы этого порта содержат индексы отсортированных данных.
Чтобы включить этот порт, установите параметр Mode равным Value and index
или Index
.
Типы данных: uint32
Mode
- Задайте, возвращает ли блок значения, индексы или то и другое одновременноValue and Index
(по умолчанию) | Value
| Index
Когда параметр Mode установлен в:
Value
- Блок сортирует элементы в каждом канале входной матрицы M -by N в порядке возрастания или убывания, основываясь на том, что вы задаете в параметре Sort order. Выходы в каждом шаге расчета, Val, являются M матрицей -by N, которая содержит отсортированные столбцы входа.
Блок сортирует комплексные входы согласно их величине.
Index
- Блок сортирует элементы в каждом канале входной матрицы M -by N и выводит массив индексов, I. Каждый элемент в I является целым числом типа uint32
который индексирует отсортированное значение в соответствующем столбце входа.
Value and index
- Блок выводит отсортированные значения входных данных, Val и соответствующих индексов в массиве индексов, I.
Sort order
- Порядок сортировкиAscending
(по умолчанию) | Descending
Задайте, чтобы отсортировать входные данные в порядке возрастания или убывания.
Sort algorithm
- Метод сортировкиQuick sort
(по умолчанию) | Insertion sort
Алгоритм быстрой сортировки использует рекурсивный метод сортировки и быстрее сортирует более 32 элементов. Алгоритм сортировки вставки использует нерекурсивный метод и быстрее сортирует менее 32 элементов. Когда вы генерируете код, чтобы избежать рекурсивных вызовов функции, используйте алгоритм сортировки вставки.
Примечание
Чтобы использовать эти параметры, вход данных должен быть комплексным и фиксированным. Для всех других входов параметры на вкладке Data Types игнорируются.
Rounding mode
- Метод округленияFloor
(по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Задайте режим округления для операций с фиксированной точкой. Для получения дополнительной информации смотрите режим округления.
Saturate on integer overflow
- Метод действия переполненияКогда вы выбираете этот параметр, блок насыщает результат своей операции с фиксированной точкой. Когда вы очищаете этот параметр, блок переносит результат своей операции с фиксированной точкой. Для получения дополнительной информации о saturate
и wrap
, см. Режим переполнения для операций с фиксированной точкой.
Product output
- Тип выходных данных продуктаInherit: Same as input
(по умолчанию) | fixdt([],16,0)
Квадраты действительной и мнимой частей комплексного входа хранятся в Product output типе данных.
Можно задать этот параметр как:
Inherit: Same as input
- Тип выходных данных продукта совпадает с типом входных данных.
fixdt([],16,0)
- тип выходных данных продукта является автоматическим, двоичным, масштабированным, типом данных с фиксированной точкой с размером слова 16 бит и длиной дроби 0.
Также можно задать тип данных Product output при помощи Data Type Assistant. Чтобы использовать ассистента, нажмите кнопку Show data type assistant.
Дополнительные сведения о помощнике по типам данных см. в разделе «Задание типов данных с использованием помощника по типам данных» (Simulink).
Accumulator
- Тип данных аккумулятораInherit: Same as product output
(по умолчанию) | Inherit: Same as input
| fixdt([],16,0)
Результат суммы квадратов действительной и мнимой частей комплексного входа сохраняются в Accumulator типе данных.
Можно задать этот параметр как:
Inherit: Same as product output
- Тип данных аккумулятора совпадает с типом выходных данных продукта.
Inherit: Same as input
- Тип данных аккумулятора совпадает с типом входных данных.
fixdt([],16,0)
- тип данных аккумулятора является автоматическим, двоичным, масштабированным, типом данных с фиксированной точкой с размером слова 16 бит и длиной дроби 0.
Также можно задать тип данных Accumulator при помощи Data Type Assistant. Чтобы использовать ассистента, нажмите кнопку Show data type assistant.
Дополнительные сведения о помощнике по типам данных см. в разделе «Задание типов данных с использованием помощника по типам данных» (Simulink).
Lock data type settings against changes by the fixed-point tools
- Предотвратить переопределение типов данных инструментами с фиксированной точкойВыберите этот параметр, чтобы предотвратить переопределение инструментами с фиксированной точкой типов данных, заданных в блоке.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Блок выдает результаты, идентичные MATLAB®
sort
функция.
Выход блока эквивалентен следующему коду MATLAB, когда Sort order установлено на:
Ascending
— [Val,I] = sort(u,'ascend')
Descending
— [Val,I] = sort(u,'descend')
где:
u
- вход данных.
Val
- отсортированный выход.
I
- индекс отсортированного выхода.
Когда вход сложен, блок сортирует данные согласно величине. Блок вычисляет величину, взяв сумму квадратов действительных и мнимых компонентов комплексного входа. Это идентично вызову sort
функционировать как [Val,I] = sort(u,...,'ComparisonMethod','abs')
.
Сгенерированный код опирается на memcpy
или memset
функции (string.h
) при определенные обстоятельства.
Параметры на вкладке Data Types используются только для сложных входов с фиксированной точкой. Комплексные входы сортируются по их величине, которая является суммой квадратов действительных и мнимых компонентов входа. Результаты квадратов действительной и мнимой частей хранятся в Product output типе данных. Результат суммы квадратов сохранен в Accumulator типе данных. Параметры на вкладке Data Types игнорируются для всех других входов.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.