Матричная сумма fi объекты
альтернативный путь состоит в том, чтобы выполнить C = plus(A,B)A+B.
Примечание
Для получения информации о fimath свойства, вовлеченные в вычисления Fixed-Point Designer™, смотрите Использование свойств fimath для Вычислений с фиксированной точкой и fimath ProductMode и SumMode.
В этом примере показано, как использовать неявное расширение, чтобы добавить векторы и матрицы с совместимыми размерностями.
Добавьте векторы строки и столбца
Создайте вектор-столбец 3 на 1 и вектор-строку 1 на 5 и добавьте их.
x = fi([1;2;3]); y = fi([1,2,3,4,5]); z = x + y
z =
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 18
FractionLength: 13
Результатом является матрица 3 на 5, где каждый (i,j) элемент в матрице дан z(i,j) = x(i) + y(j).
Добавьте матрицу и вектор-столбец
Создайте матрицу M на n и вектор-столбец M-1 и добавьте их.
x = fi([1 2 3 4 5
6 7 8 9 10
11 12 13 14 15]);
y = fi([1;2;3]);
z = x + yz =
2 3 4 5 6
8 9 10 11 12
14 15 16 17 18
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 19
FractionLength: 13
Результатом является матрица M на n, где каждый (i,j) элемент в матрице дан z(i,j) = x(i,j) + y(i).
Добавьте матричный и вектор-строку
Создайте матрицу M на n и вектор-строку 1 на n и добавьте их.
x = fi([1 2 3 4 5
6 7 8 9 10
11 12 13 14 15]);
y = fi([1 2 3 4 5]);
z = x + yz =
2 4 6 8 10
7 9 11 13 15
12 14 16 18 20
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 18
FractionLength: 12
Результатом является матрица M на n, где каждый (i, j) элемент в матрице дан z (i, j) = x (i, j) + y (j).
Добавьте матрицу в многомерный массив
Создайте матрицу M на n и M N P массивом и добавьте их.
x = fi(ones(3,5)); y = fi(ones(3,5,3)); z = x + y
z =
(:,:,1) =
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
(:,:,2) =
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
(:,:,3) =
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 17
FractionLength: 14
Результатом является M N P массивом, где каждому (i, j, k) элемент в массиве дает z (i, j, k) = x (i, j) + y (i, j, k).
A — Входной массивВходной массив в виде скаляра, вектора, матрицы или многомерного массива fi объекты или встроенные типы данных. Входные параметры A и B должен или быть одного размера или иметь размеры, которые совместимы. Для получения дополнительной информации см. "Совместимые размеры массивов для основных операций".
plus не поддерживает fi объекты типа данных boolean.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да
B — Входной массивВходной массив в виде скаляра, вектора, матрицы или многомерного массива fi объекты или встроенные типы данных. Входные параметры A и B должен или быть одного размера или иметь размеры, которые совместимы. Для получения дополнительной информации см. "Совместимые размеры массивов для основных операций".
plus не поддерживает fi объекты типа данных boolean.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да
Поведение изменяется в R2021b
Запуск в R2021b со сложением неявного расширения для fi
times, plus, и minus, некоторые комбинации аргументов для основных операций, которые ранее возвратили ошибки теперь, приводят к результатам.
Если ваш код использует поэлементные операторы и использует ошибки что MATLAB® ранее возвращенный для несовпадающих размеров, особенно в try/catch блокируйтесь, затем ваш код больше не может фиксировать те ошибки.
Для получения дополнительной информации о необходимых входных размерах для основных операций над массивами смотрите Совместимые Размеры Массивов для Основных Операций.
Указания и ограничения по применению:
Любой non-fi входные параметры должны быть постоянными; то есть, его значение должно быть известно во время компиляции так, чтобы это могло быть брошено к fi объект.
Входные параметры не могут иметь типа данных logical.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.