Вычислите количество ошибок символа и коэффициента ошибок символа
[number,ratio] = symerr(x,y)
[number,ratio] = symerr(x,y,flg
)
[number,ratio,loc] = symerr(...)
Функция symerr
сравнивает бинарные представления элементов в x
с теми в y
. Схематика ниже иллюстрирует, как формы x
и y
определяют, какие элементы symerr
сравнивает.
Вывод number
является скаляром или вектором, который указывает на число элементов, которые отличаются. Размер number
определяется дополнительным входом flg
и размерностями x
и y
. Вывод ratio
равняется number
, разделенному на общее количество элементов в меньшем входе.
[number,ratio] = symerr(x,y)
сравнивает элементы в x
и y
. Размеры x
и y
определяют, какие элементы сравнены:
Если x
и y
являются матрицами тех же размерностей, то symerr
сравнивает x
и y
поэлементно. number
является скаляром. Смотрите схематичный (a) в фигуре.
Если вы - строка (соответственно, столбец), вектор и другой являются двумерной матрицей, то symerr
сравнивает вектор поэлементно с каждой строкой (resp., столбец) матрицы. Длина вектора должна равняться количеству столбцов (resp., строки) в матрице. number
является столбцом (resp., строка) вектор, mth запись которого указывает на число элементов, которые отличаются при сравнении вектора с mth строкой (resp., столбец) матрицы. Смотрите схематику (b) и (c) в фигуре.
[number,ratio] = symerr(x,y,
подобно предыдущему синтаксису, за исключением того, что flg
) flg
может заменить значения по умолчанию, которые управляют, какие элементы symerr
сравнивает и как symerr
вычисляет выходные параметры. Значениями flg
является 'overall'
, 'column-wise'
и 'row-wise'
. Приведенная ниже таблица описывает различия, которые следуют из различных комбинаций входных параметров. Во всех случаях ratio
является number
, разделенный на общее количество элементов в y
.
Сравнение Двумерной Матрицы x с Другим Входом y
Форма y | flg | Тип сравнения | номер |
---|---|---|---|
2D dim. матрица | 'overall' (значение по умолчанию) | Поэлементно | Общее количество ошибок символа |
'column-wise' | столбец mth x по сравнению с mth столбцом y
| Вектор - строка, записи которого считают ошибки символа в каждом столбце | |
'row-wise' | строка mth x по сравнению с mth строкой y
| Вектор-столбец, записи которого считают ошибки символа в каждой строке | |
Вектор-столбец | 'overall'
| y по сравнению с каждым столбцом x
| Общее количество ошибок символа |
'column-wise' (значение по умолчанию) | y по сравнению с каждым столбцом x
| Вектор - строка, записи которого считают ошибки символа в каждом столбце x
| |
Вектор - строка | 'overall' | y по сравнению с каждой строкой x
| Общее количество ошибок символа |
'row-wise' (значение по умолчанию) | y по сравнению с каждой строкой x
| Вектор-столбец, записи которого считают ошибки символа в каждой строке x
|
[number,ratio,loc] = symerr(...)
возвращает бинарный матричный loc
, который указывает, какие элементы x
и y
отличаются. Элемент loc
является нулем, если соответствующее сравнение не приводит ни к какому несоответствию, и один в противном случае.
На странице с описанием для biterr
последний пример использует symerr
.
Сравните элементы матрицы с другой матрицей
x = [1,1,3,1;3,2,2,2;3,3,8,3]
x = 3×4
1 1 3 1
3 2 2 2
3 3 8 3
aMatrix = [1,1,1,1;2,2,2,2;3,3,3,3]
aMatrix = 3×4
1 1 1 1
2 2 2 2
3 3 3 3
[number1,ratio1] = symerr(x,aMatrix)
number1 = 3
ratio1 = 0.2500
Сравните элементы матрицы с вектором - строкой
x = [1,1,3,1;3,2,2,2;3,3,8,3]
x = 3×4
1 1 3 1
3 2 2 2
3 3 8 3
aRowVector = [1,2,3,1]
aRowVector = 1×4
1 2 3 1
[number2,ratio2] = symerr(x,aRowVector)
number2 = 3×1
1
3
4
ratio2 = 3×1
0.2500
0.7500
1.0000
Сравните элементы матрицы с вектор-столбцом
x = [1,1,3,1;3,2,2,2;3,3,8,3]
x = 3×4
1 1 3 1
3 2 2 2
3 3 8 3
aColumnVector = [1;2;3]
aColumnVector = 3×1
1
2
3
[number3,ratio3] = symerr(x,aColumnVector)
number3 = 1×4
1 0 2 0
ratio3 = 1×4
0.3333 0 0.6667 0
Можно задать альтернативные методы сравнения, используемые symerr
. В этом примере вы используете флаг, чтобы заменить сравнение строки строкой по умолчанию. Заметьте, что номер и отношение являются скалярами.
format rat; [number,ratio,loc] = symerr([1 2; 3 4],[1 3],'overall')
number = 3
ratio = 3/4
loc = 2×2
0 1
1 1