Этот пример показывает основные методы и функции для работы с матрицами на языке MATLAB®.
Во-первых, давайте создадим простой вектор с 9 элементами под названием a
.
a = [1 2 3 4 6 4 3 4 5]
a = 1×9
1 2 3 4 6 4 3 4 5
Теперь давайте добавим 2 к каждому элементу нашего вектора, a
, и давайте сохраним результат в новом векторе.
Заметьте, как MATLAB не требует никакой специальной обработки векторной или матричной математики.
b = a + 2
b = 1×9
3 4 5 6 8 6 5 6 7
Создание графиков в MATLAB так же легко как одна команда. Давайте построим график результата нашего векторного сложения с линиями сетки.
plot(b)
grid on
MATLAB может сделать другие типы графика также с подписями по осям.
bar(b) xlabel('Sample #') ylabel('Pounds')
MATLAB может использовать символы в графиках также. Вот пример с помощью звезд, чтобы отметить точки. MATLAB предлагает множество других символов и типов строки.
plot(b,'*')
axis([0 10 0 10])
Одной областью, в которой выделяется MATLAB, является матричное вычисление.
Создание матрицы так же легко как создание вектора, с использованием точек с запятой (;) чтобы разделить строки матрицы.
A = [1 2 0; 2 5 -1; 4 10 -1]
A = 3×3
1 2 0
2 5 -1
4 10 -1
Мы можем легко найти транспонирование матричного A
.
B = A'
B = 3×3
1 2 4
2 5 10
0 -1 -1
Теперь давайте умножим эти две матрицы вместе.
Обратите внимание снова, что MATLAB не требует, чтобы вы имели дело с матрицами как набор чисел. MATLAB знает, когда вы имеете дело с матрицами, и настраивает ваши вычисления соответственно.
C = A * B
C = 3×3
5 12 24
12 30 59
24 59 117
Вместо того, чтобы делать матрицу умножаются, мы можем умножить соответствующие элементы двух матриц или векторов с помощью.* operator.
C = A .* B
C = 3×3
1 4 0
4 25 -10
0 -10 1
Давайте использовать матрицу А, чтобы решить уравнение, A*x = b. Мы делаем это при помощи \(наклонная черта влево) оператор.
b = [1;3;5]
b = 3×1
1
3
5
x = A\b
x = 3×1
1
0
-1
Теперь мы можем показать, что A*x равен b.
r = A*x - b
r = 3×1
0
0
0
MATLAB имеет функции для почти каждого типа общего матричного вычисления.
Существуют функции, чтобы получить собственные значения...
eig(A)
ans = 3×1
3.7321
0.2679
1.0000
... а также сингулярные значения.
svd(A)
ans = 3×1
12.3171
0.5149
0.1577
Функция "poly" генерирует вектор, содержащий коэффициенты характеристического многочлена.
Характеристический многочлен матричного A
p = round(poly(A))
p = 1×4
1 -5 5 -1
Мы можем легко найти корни многочлена с помощью функции roots
.
Это на самом деле собственные значения исходной матрицы.
roots(p)
ans = 3×1
3.7321
1.0000
0.2679
MATLAB имеет много приложений вне просто матричного вычисления.
Применять операцию свертки к двум векторам...
q = conv(p,p)
q = 1×7
1 -10 35 -52 35 -10 1
... или примените операцию свертки снова и постройте график результата.
r = conv(p,q)
r = 1×10
1 -15 90 -278 480 -480 278 -90 15 -1
plot(r);
В любое время мы можем получить список переменных, которые мы сохранили в памяти с помощью команды whos
или who
.
whos
Name Size Bytes Class Attributes A 3x3 72 double B 3x3 72 double C 3x3 72 double a 1x9 72 double ans 3x1 24 double b 3x1 24 double p 1x4 32 double q 1x7 56 double r 1x10 80 double x 3x1 24 double
Можно получить значение конкретной переменной путем введения ее имени.
A
A = 3×3
1 2 0
2 5 -1
4 10 -1
У вас может быть больше чем один оператор на одной строке путем разделения каждого оператора запятыми или точками с запятой.
Если вы не присваиваете переменную, чтобы сохранить результат операции, результат сохранен во временной переменной под названием ans
.
sqrt(-1)
ans = 0.0000 + 1.0000i
Как вы видите, MATLAB легко имеет дело с комплексными числами в его вычислениях.