Матрицы и массивы

MATLAB является сокращением от "матричной лаборатории". В то время как другие языки программирования в основном работают с числами по одному, MATLAB® спроектирован, чтобы работать, в основном, с целыми матрицами и массивами.

Все переменные MATLAB являются многомерными массивами, неважно какого типа данных. Матрица A является двумерным массивом, часто используемым для линейной алгебры.

Создание массивов

Чтобы создать массив из четырех элементов в одной строке, разделите элементы любым запятая (,) или пробел.

a = [1 2 3 4]
a = 1×4

     1     2     3     4

Этот тип массива является вектором-строкой.

Чтобы создать матрицу, которая имеет несколько строк, разделите строки точками с запятой.

a = [1 2 3; 4 5 6; 7 8 10]
a = 3×3

     1     2     3
     4     5     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    12    13
    14    15    16
    17    18    20

sin(a)
ans = 3×3

    0.8415    0.9093    0.1411
   -0.7568   -0.9589   -0.2794
    0.6570    0.9894   -0.5440

Чтобы транспонировать матрицу, используйте одинарную кавычку ('):

a'
ans = 3×3

     1     4     7
     2     5     8
     3     6    10

Можно выполнить стандартное умножение матриц, которое вычисляет скалярные произведения между строками и столбцами, с помощью * оператор. Например, подтвердите, что матрица, умноженная на её обратную матрицу, возвращает единичную матрицу:

p = a*inv(a)
p = 3×3

    1.0000         0   -0.0000
         0    1.0000         0
         0         0    1.0000

Заметьте тот p не матрица целочисленных значений. MATLAB хранит числа как значения с плавающей точкой, и арифметические операции чувствительны к небольшим различиям между фактическим значением и его представлением с плавающей точкой. Можно отобразить больше десятичных цифр с помощью format команда:

format long
p = a*inv(a)
p = 3×3

   1.000000000000000                   0  -0.000000000000000
                   0   1.000000000000000                   0
                   0                   0   0.999999999999998

Сбросьте отображение к более короткому формату используя

format short

format влияет только на отображение чисел, а не то, как MATLAB вычисляет или сохраняет их.

Чтобы выполнить поэлементное умножение, а не умножение матриц, используйте .* оператор:

p = a.*a
p = 3×3

     1     4     9
    16    25    36
    49    64   100

Для каждого из матричных операторов умножения, деления и возведения в степень существует соответствующий оператор для поэлементных операций. Например, возведите каждый элемент a в третью степень:

a.^3
ans = 3×3

           1           8          27
          64         125         216
         343         512        1000

Конкатенация

Конкатенация является процессом слияния массивов для создания бОльших массивов. На самом деле вы сделали свой первый массив путем конкатенации его отдельных элементов. Пара квадратных скобок [] оператор конкатенации.

A = [a,a]
A = 3×6

     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8    10     7     8    10

Конкатенация массивов друг с другом, с использованием запятых, называется горизонтальной конкатенацией. Каждый массив должен иметь одинаковое число строк. Точно так же, когда массивы имеют одинаковое число столбцов, можно конкатенировать вертикально с использованием точки с запятой.

A = [a; a]
A = 6×3

     1     2     3
     4     5     6
     7     8    10
     1     2     3
     4     5     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