MATLAB – Матрица
В MATLAB вы создаете матрицу, вводя элементы в каждой строке в виде чисел, разделенных запятыми или пробелами, и используя точки с запятой, чтобы отметить конец каждой строки.
Например, давайте создадим матрицу 4 на 5 a –
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]
MATLAB выполнит приведенный выше оператор и вернет следующий результат –
a = 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8
Ссылка на элементы матрицы
Для ссылки на элемент в m- й строке и n- м столбце матрицы mx мы пишем:
mx(m, n);
Например, чтобы обратиться к элементу во 2- й строке и 5- м столбце матрицы a , как создано в последнем разделе, мы набираем –
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; a(2,5)
MATLAB выполнит приведенный выше оператор и вернет следующий результат –
ans = 6
Для ссылки на все элементы в m- м столбце мы набираем A (:, m).
Создадим вектор-столбец v из элементов 4- й строки матрицы a –
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; v = a(:,4)
MATLAB выполнит приведенный выше оператор и вернет следующий результат –
v = 4 5 6 7
Вы также можете выбрать элементы в столбцах с m по n, для этого мы напишем:
Давайте создадим меньшую матрицу, взяв элементы из второго и третьего столбцов –
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; a(:, 2:3)
MATLAB выполнит приведенный выше оператор и вернет следующий результат –
ans = 2 3 3 4 4 5 5 6
Таким же образом вы можете создать подматрицу, взяв подчасть матрицы.
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; a(:, 2:3)
MATLAB выполнит приведенный выше оператор и вернет следующий результат –
ans = 2 3 3 4 4 5 5 6
Таким же образом вы можете создать подматрицу, взяв подчасть матрицы.
Например, давайте создадим подматрицу sa, взяв внутреннюю часть a –
3 4 5 4 5 6
Для этого напишите –
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; sa = a(2:3,2:4)
MATLAB выполнит приведенный выше оператор и вернет следующий результат –
sa = 3 4 5 4 5 6
Удаление строки или столбца в матрице
Вы можете удалить всю строку или столбец матрицы, назначив пустой набор квадратных скобок [] для этой строки или столбца. По сути, [] обозначает пустой массив.
Например, давайте удалим четвертый ряд –
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; a( 4 , : ) = []
MATLAB выполнит приведенный выше оператор и вернет следующий результат –
a = 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7
Далее, давайте удалим пятый столбец –
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; a(: , 5)=[]
MATLAB выполнит приведенный выше оператор и вернет следующий результат –
a = 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7
пример
В этом примере давайте создадим матрицу 3 на 3 m, затем дважды скопируем вторую и третью строки этой матрицы, чтобы создать матрицу 4 на 3.
Создайте файл сценария со следующим кодом –
a = [ 1 2 3 ; 4 5 6; 7 8 9]; new_mat = a([2,3,2,3],:)
Когда вы запускаете файл, он показывает следующий результат –
new_mat = 4 5 6 7 8 9 4 5 6 7 8 9
Матричные Операции
В этом разделе давайте обсудим следующие основные и часто используемые матричные операции –
Матрицы и массивы
MATLAB является сокращением от «матричной лаборатории». В то время как другие языки программирования в основном работают с числами по одному, MATLAB® спроектирован, чтобы работать, в основном, с целыми матрицами и массивами.
Все переменные MATLAB являются многомерными массивами , неважно какого типа данных. Матрица A является двумерным массивом, часто используемым для линейной алгебры.
Создание массивов
Чтобы создать массив из четырех элементов в одной строке, разделите элементы любым запятая ( , ) или пробел.
a = [1 2 3 4]
a = 1×4 1 2 3 4
Этот тип массива является вектором-строкой .
Чтобы создать матрицу, которая имеет несколько строк, разделите строки точками с запятой.
a = [1 3 5; 2 4 6; 7 8 10]
a = 3×3 1 3 5 2 4 6 7 8 10
Другой способ создать матрицу состоит в том, чтобы использовать функцию, такую как ones нули , или rand . Например, создайте вектор — столбец размером 5 на 1 из нулей.
z = zeros(5,1)
z = 5×1 0 0 0 0 0
Матричные операции и операции над массивами
MATLAB позволяет вам обрабатывать все значения в матрице с помощью одного арифметического оператора или функции.
a + 10
ans = 3×3 11 13 15 12 14 16 17 18 20
sin(a)
ans = 3×3 0.8415 0.1411 -0.9589 0.9093 -0.7568 -0.2794 0.6570 0.9894 -0.5440
Чтобы транспонировать матрицу, используйте одинарную кавычку ( ‘ ):
ans = 3×3 1 2 7 3 4 8 5 6 10
Можно выполнить стандартное умножение матриц, которое вычисляет скалярные произведения между строками и столбцами, с помощью * оператор. Например, подтвердите, что матрица, умноженная на её обратную матрицу, возвращает единичную матрицу:
p = a*inv(a)
p = 3×3 1.0000 0.0000 -0.0000 0 1.0000 -0.0000 0 0.0000 1.0000
Заметьте, что p не матрица целочисленных значений. MATLAB хранит числа как значения с плавающей точкой, и арифметические операции чувствительны к небольшим различиям между фактическим значением и его представлением с плавающей точкой. Можно отобразить больше десятичных цифр с помощью format команда:
format long p = a*inv(a)
p = 3×3 1.0000 0.0000 -0.0000 0 1.0000 -0.0000 0 0.0000 1.0000
Сбросьте отображение к более короткому формату используя
format short
format влияет только на отображение чисел, а не то, как MATLAB вычисляет или сохраняет их.
Чтобы выполнить поэлементное умножение, а не умножение матриц, используйте .* оператор:
p = a.*a
p = 3×3 1 9 25 4 16 36 49 64 100
Для каждого из матричных операторов умножения, деления и возведения в степень существует соответствующий оператор для поэлементных операций. Например, возведите каждый элемент a в третью степень:
ans = 3×3 1 27 125 8 64 216 343 512 1000
Конкатенация
Конкатенация является процессом слияния массивов для создания бОльших массивов. На самом деле вы сделали свой первый массив путем конкатенации его отдельных элементов. Пара квадратных скобок [] оператор конкатенации.
A = [a,a]
A = 3×6 1 3 5 1 3 5 2 4 6 2 4 6 7 8 10 7 8 10
Конкатенация массивов друг с другом, с использованием запятых, называется горизонтальной конкатенацией. Каждый массив должен иметь одинаковое число строк. Точно так же, когда массивы имеют одинаковое число столбцов, можно конкатенировать вертикально с использованием точки с запятой.
A = [a; a]
A = 6×3 1 3 5 2 4 6 7 8 10 1 3 5 2 4 6 7 8 10
Комплексные числа
Комплексные числа имеют и действительные и мнимые части, где мнимая единица является квадратным корнем из -1 .
sqrt(-1)
ans = 0.0000 + 1.0000i
Чтобы представлять мнимую часть комплексных чисел, используйте любой i или j .
c = [3+4i, 4+3j; -i, 10j]
c = 2×2 complex 3.0000 + 4.0000i 4.0000 + 3.0000i 0.0000 - 1.0000i 0.0000 +10.0000i
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Документация
Эта тема содержит введение в создание матриц и выполнение основных матричных вычислений в MATLAB ® .
Среда MATLAB использует термин матрица , чтобы указать на переменное, содержащее вещественные или комплексные числа, расположенные в двумерной сетке. Массив является, в более общем плане, вектором, матрицей или более высокой размерной сеткой чисел. Все массивы в MATLAB являются прямоугольными, в том смысле, что векторы компонента по любому измерению являются всеми одинаковыми длина. Математические операции, заданные на матрицах, являются предметом линейной алгебры.
Создание матриц
MATLAB имеет много функций, которые создают различные виды матриц. Например, можно создать симметрическую матрицу с записями на основе треугольника Паскаля:
A = pascal(3)
A = 1 1 1 1 2 3 1 3 6
Или, можно создать несимметричную матрицу магического квадрата , которая имеет равные суммы строки и столбца:
B = magic(3)
B = 8 1 6 3 5 7 4 9 2
Другим примером является 3 2 прямоугольная матрица случайных целых чисел. В этом случае первый вход к randi описывает область значений возможных значений для целых чисел, и вторые два входных параметров описывают количество строк и столбцов.
C = randi(10,3,2)
C = 9 10 10 7 2 1
Вектор-столбцом является m-by-1 матрица, вектор-строка является 1 n матрицей, и скаляр является матрицей 1 на 1. Чтобы задать матрицу вручную, используйте квадратные скобки [ ] обозначить начало и конец массива. В скобках используйте точку с запятой ; обозначить конец строки. В случае скаляра (матрица 1 на 1), не требуются скобки. Например, эти операторы производят вектор-столбец, вектор-строку и скаляр:
u = [3; 1; 4] v = [2 0 -1] s = 7
u = 3 1 4 v = 2 0 -1 s = 7
Для получения дополнительной информации о создании и работе с матрицами, смотрите Создание, конкатенацию и расширение матрицы.
Сложение и вычитание матриц
Сложение и вычитание матриц и массивов выполняются поэлементно или поэлементные . Например, добавление A к B и затем вычитание A от результата восстанавливает B :
X = A + B
X = 9 2 7 4 7 10 5 12 8
Y = X - A
Y = 8 1 6 3 5 7 4 9 2
Сложение и вычитание требуют, чтобы обе матрицы имели совместимые размерности. Если размерности несовместимы, ошибка заканчивается:
X = A + C
Error using + Matrix dimensions must agree.
Для получения дополнительной информации см. Массив по сравнению Матричные операции.
Векторные произведения и транспонирование
Вектор-строка и вектор-столбец той же длины могут быть умножены в любом порядке. Результатом является или скаляр, названный скалярным произведением , или матрица, названная векторным произведением :
u = [3; 1; 4]; v = [2 0 -1]; x = v*u
x = 2
X = u*v
X = 6 0 -3 2 0 -1 8 0 -4
Для действительных матриц транспонировать операция обменивается a i j и a j i. Для комплексных матриц другой фактор состоит в том, взять ли сопряженное комплексное число комплексных записей в массиве, чтобы сформировать комплексное сопряженное транспонирование . MATLAB использует оператор апострофа ( ‘ ) выполнять комплексное сопряженное транспонирование и оператор точечного апострофа ( .’ ) транспонировать без спряжения. Для матриц, содержащих все действительные элементы, эти два оператора возвращают тот же результат.
Матрица в качестве примера A = pascal(3) симметрично , таким образом , A’ равно A . Однако B = magic(3) не симметрично, таким образом , B’ отразили элементы по основной диагонали:
B = magic(3)
B = 8 1 6 3 5 7 4 9 2
X = B'
X = 8 3 4 1 5 9 6 7 2
Для векторов перемещение превращает вектор-строку в вектор-столбец (и наоборот):
x = v' x = 2 0 -1
Если x и y оба действительные вектор-столбцы, затем продукт x*y не задан, но эти два продукта
приведите к тому же скалярному результату. Это количество используется так часто, оно имеет три различных имени: скалярное произведение , скалярное произведение или скалярное произведение . Существует даже специализированная функция для названных скалярных произведений dot .
Для комплексного вектора или матрицы, z , количество z’ не только транспонирует вектор или матрицу, но также и преобразует каждый комплексный элемент в его сопряженное комплексное число. Таким образом, знак мнимой части каждого комплексного элемента изменения. Например, рассмотрите комплексную матрицу
z = [1+2i 7-3i 3+4i; 6-2i 9i 4+7i]
z = 1.0000 + 2.0000i 7.0000 - 3.0000i 3.0000 + 4.0000i 6.0000 - 2.0000i 0.0000 + 9.0000i 4.0000 + 7.0000i
Комплексное сопряженное транспонирование z :
ans = 1.0000 - 2.0000i 6.0000 + 2.0000i 7.0000 + 3.0000i 0.0000 - 9.0000i 3.0000 - 4.0000i 4.0000 - 7.0000i
Неспрягаемый комплекс транспонирует, где комплексная часть каждого элемента сохраняет свой знак, обозначается z.’ :
ans = 1.0000 + 2.0000i 6.0000 - 2.0000i 7.0000 - 3.0000i 0.0000 + 9.0000i 3.0000 + 4.0000i 4.0000 + 7.0000i
Для комплексных векторов, эти два скалярных произведения x’*y и y’*x сопряженные комплексные числа друг друга и скалярное произведение x’*x из комплексного вектора с собой действительно.
Умножение матриц
Умножение матриц задано способом, который отражает состав базовых линейных преобразований и позволяет компактное представление систем одновременных линейных уравнений. Матричное произведение C = AB задан, когда размерность столбца A равна размерности строки B, или когда один из них является скаляром. Если A является m-by-p, и B является p-by-n, их продукт, C является m-by-n. Продукт может на самом деле быть задан с помощью MATLAB for циклы, colon обозначение и векторные скалярные произведения:
A = pascal(3); B = magic(3); m = 3; n = 3; for i = 1:m for j = 1:n C(i,j) = A(i,:)*B(:,j); end end
MATLAB использует звездочку, чтобы обозначить умножение матриц, как в C = A*B . Умножение матриц не является коммутативным; то есть, A*B обычно не равно B*A :
X = A*B
X = 15 15 15 26 38 26 41 70 39
Y = B*A
Y = 15 28 47 15 34 60 15 28 43
Матрица A может быть умножена справа вектор-столбцом и слева вектором-строкой:
u = [3; 1; 4]; x = A*u
x = 8 17 30
v = [2 0 -1]; y = v*B
y = 12 -7 10
Прямоугольные умножения матриц должны удовлетворить условиям совместимости размерности. Начиная с A имеет размер 3х3 и C 3 2, можно умножить их, чтобы добраться 3 2 результат (общие внутренние отмены размерности):
X = A*C
X = 24 17 47 42 79 77
Однако умножение не работает в обратном порядке:
Y = C*A
Error using * Incorrect dimensions for matrix multiplication. Check that the number of columns in the first matrix matches the number of rows in the second matrix. To perform elementwise multiplication, use '.*'.
Можно умножить что-либо со скаляром:
s = 10; w = s*y
w = 120 -70 100
Когда вы умножаете массив на скаляр, скаляр неявно расширяется, чтобы быть одного размера с другим входом. Это часто упоминается как скалярное расширение .
Единичная матрица
Общепринятое математическое обозначение использует прописную букву I, чтобы обозначить единичные матрицы, матрицы различных размеров с единицами на основной диагонали и нулях в другом месте. Эти матрицы имеют свойство, что A I = A и I A = A каждый раз, когда размерности совместимы.
Исходная версия MATLAB не могла использовать I с этой целью, потому что это не различало прописные и строчные буквы, и i уже служил индексом и как комплексной единицей. Таким образом, английская игра слов языка была введена. Функция
eye(m,n)
возвращает m-by-n прямоугольная единичная матрица и eye(n) возвращает n-by-n квадратная единичная матрица.
Обращение матриц
Если матричный A является квадратным и несингулярным (ненулевой определитель), затем уравнения A X = I и X A =, I имеет то же решение X. Это решение называется инверсией A и обозначается A -1 . inv функционируйте и выражение A^-1 оба вычисляют обратную матрицу.
A = pascal(3)
A = 1 1 1 1 2 3 1 3 6
X = inv(A)
X = 3.0000 -3.0000 1.0000 -3.0000 5.0000 -2.0000 1.0000 -2.0000 1.0000
ans = 1.0000 0 0 0.0000 1.0000 -0.0000 -0.0000 0.0000 1.0000
Определитель , вычисленный det мера масштабного коэффициента линейного преобразования, описанного матрицей. Когда определитель ниже нуля, матрица сингулярна , и никакая инверсия не существует.
d = det(A)
d = 1
Некоторые матрицы почти сингулярны , и несмотря на то, что обратная матрица существует, вычисление восприимчиво к числовым ошибкам. cond функция вычисляет число обусловленности для инверсии , которая дает индикацию относительно точности результатов матричной инверсии. Число обусловленности лежит в диапазоне от 1 для численно устойчивой матрицы к Inf для сингулярной матрицы.
c = cond(A)
c = 61.9839
Редко необходимо сформировать явную инверсию матрицы. Частое неправильное употребление inv возникает при решении системы линейных уравнений A x = b . Лучший способ решить это уравнение, с точки зрения и времени выполнения и числовой точности, состоит в том, чтобы использовать матричный оператор обратной косой черты x = A\b . Смотрите mldivide для получения дополнительной информации.
Продукт тензора Кронекера
Кронекеров продукт, kron(X,Y) , из двух матриц большая матрица, сформированная из всех возможных продуктов элементов X с теми из Y . Если X m-by-n и Y p-by-q, затем kron(X,Y) mp-by-nq. Элементы располагаются таким образом что каждый элемент X умножается на целый матричный Y :
[X(1,1)*Y X(1,2)*Y . . . X(1,n)*Y . . . X(m,1)*Y X(m,2)*Y . . . X(m,n)*Y]
Кронекеров продукт часто используется с матрицами нулей и единиц, чтобы создать повторенные копии маленьких матриц. Например, если X матрица 2 на 2
X = [1 2 3 4]
и I = eye(2,2) единичная матрица 2 на 2, затем:
kron(X,I)
ans = 1 0 2 0 0 1 0 2 3 0 4 0 0 3 0 4
kron(I,X)
ans = 1 2 0 0 3 4 0 0 0 0 1 2 0 0 3 4
Кроме kron , некоторые другие функции, которые полезны, чтобы реплицировать массивы, repmat , repelem , и blkdiag .
Векторные и матричные нормы
‖ x ‖ p = ( ∑ | x i | p ) 1 p ,
вычисляется norm(x,p) . Эта операция задана для любого значения p> 1, но наиболее распространенные значения p равняются 1, 2, и ∞. Значением по умолчанию является p = 2, который соответствует Евклидовой длине или векторной величине :
v = [2 0 -1]; [norm(v,1) norm(v) norm(v,inf)]
ans = 3.0000 2.2361 2.0000
‖ A ‖ p = max x ‖ A x ‖ p ‖ x ‖ p ,
может быть вычислен для p = 1, 2, и ∞ norm(A,p) . Снова, значением по умолчанию является p = 2:
A = pascal(3); [norm(A,1) norm(A) norm(A,inf)]
ans = 10.0000 7.8730 10.0000
В случаях, где вы хотите вычислить норму каждой строки или столбца матрицы, можно использовать vecnorm :
vecnorm(A)
ans = 1.7321 3.7417 6.7823
Используя многопоточное вычисление с функциями линейной алгебры
MATLAB поддерживает многопоточный расчет во многой линейной алгебре и поэлементных числовых функциях. Эти функции автоматически выполняются на нескольких потоках. Для функции или выражения, чтобы выполниться быстрее на нескольких центральных процессорах, много условий должны быть верными:
- Функция выполняет операции, что легко раздел в разделы, которые выполняются одновременно. Эти разделы должны смочь выполниться с небольшой связью между процессами. Они должны потребовать немногих последовательных операций.
- Размер данных является достаточно большим так, чтобы любые преимущества параллельного выполнения перевесили время, требуемое разделить данные и управлять отдельными потоками выполнения. Например, большинство функций убыстряется только, когда массив содержит несколько тысяч элементов или больше.
- Операция не ограничена памятью; время вычислений не во власти времени доступа к памяти. Как правило сложные функции ускоряют больше, чем простые функции.
Матрица умножает (X*Y) и матричная степень (X^p) операторы показывают значительное увеличение скорости на больших массивах с двойной точностью (порядка 10 000 элементов). Функции анализа матрицы det , rcond , hess , и expm также покажите значительное увеличение скорости на больших массивах с двойной точностью.
Похожие темы
- Системы линейных уравнений
- Факторизации
- Собственные значения
- Сингулярные значения
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Матрицы и массивы
MATLAB является сокращением от «матричной лаборатории». В то время как другие языки программирования в основном работают с числами по одному, MATLAB® спроектирован, чтобы работать, в основном, с целыми матрицами и массивами.
Все переменные MATLAB являются многомерными массивами , неважно какого типа данных. Матрица A является двумерным массивом, часто используемым для линейной алгебры.
Создание массивов
Чтобы создать массив из четырех элементов в одной строке, разделите элементы любым запятая ( , ) или пробел.
a = [1 2 3 4]
a = 1×4 1 2 3 4
Этот тип массива является вектором-строкой .
Чтобы создать матрицу, которая имеет несколько строк, разделите строки точками с запятой.
a = [1 3 5; 2 4 6; 7 8 10]
a = 3×3 1 3 5 2 4 6 7 8 10
Другой способ создать матрицу состоит в том, чтобы использовать функцию, такую как ones нули , или rand . Например, создайте вектор — столбец размером 5 на 1 из нулей.
z = zeros(5,1)
z = 5×1 0 0 0 0 0
Матричные операции и операции над массивами
MATLAB позволяет вам обрабатывать все значения в матрице с помощью одного арифметического оператора или функции.
a + 10
ans = 3×3 11 13 15 12 14 16 17 18 20
sin(a)
ans = 3×3 0.8415 0.1411 -0.9589 0.9093 -0.7568 -0.2794 0.6570 0.9894 -0.5440
Чтобы транспонировать матрицу, используйте одинарную кавычку ( ‘ ):
ans = 3×3 1 2 7 3 4 8 5 6 10
Можно выполнить стандартное умножение матриц, которое вычисляет скалярные произведения между строками и столбцами, с помощью * оператор. Например, подтвердите, что матрица, умноженная на её обратную матрицу, возвращает единичную матрицу:
p = a*inv(a)
p = 3×3 1.0000 0.0000 -0.0000 0 1.0000 -0.0000 0 0.0000 1.0000
Заметьте, что p не матрица целочисленных значений. MATLAB хранит числа как значения с плавающей точкой, и арифметические операции чувствительны к небольшим различиям между фактическим значением и его представлением с плавающей точкой. Можно отобразить больше десятичных цифр с помощью format команда:
format long p = a*inv(a)
p = 3×3 1.0000 0.0000 -0.0000 0 1.0000 -0.0000 0 0.0000 1.0000
Сбросьте отображение к более короткому формату используя
format short
format влияет только на отображение чисел, а не то, как MATLAB вычисляет или сохраняет их.
Чтобы выполнить поэлементное умножение, а не умножение матриц, используйте .* оператор:
p = a.*a
p = 3×3 1 9 25 4 16 36 49 64 100
Для каждого из матричных операторов умножения, деления и возведения в степень существует соответствующий оператор для поэлементных операций. Например, возведите каждый элемент a в третью степень:
ans = 3×3 1 27 125 8 64 216 343 512 1000
Конкатенация
Конкатенация является процессом слияния массивов для создания бОльших массивов. На самом деле вы сделали свой первый массив путем конкатенации его отдельных элементов. Пара квадратных скобок [] оператор конкатенации.
A = [a,a]
A = 3×6 1 3 5 1 3 5 2 4 6 2 4 6 7 8 10 7 8 10
Конкатенация массивов друг с другом, с использованием запятых, называется горизонтальной конкатенацией. Каждый массив должен иметь одинаковое число строк. Точно так же, когда массивы имеют одинаковое число столбцов, можно конкатенировать вертикально с использованием точки с запятой.
A = [a; a]
A = 6×3 1 3 5 2 4 6 7 8 10 1 3 5 2 4 6 7 8 10
Комплексные числа
Комплексные числа имеют и действительные и мнимые части, где мнимая единица является квадратным корнем из -1 .
sqrt(-1)
ans = 0.0000 + 1.0000i
Чтобы представлять мнимую часть комплексных чисел, используйте любой i или j .
c = [3+4i, 4+3j; -i, 10j]
c = 2×2 complex 3.0000 + 4.0000i 4.0000 + 3.0000i 0.0000 - 1.0000i 0.0000 +10.0000i
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
