Вычислите количество ошибок символа и коэффициента ошибок символа
[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