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

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

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

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

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

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, zeros или 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

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

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

p = a.*a
p = 3×3

     1     4     9
    16    25    36
    49    64   100

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

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

Была ли эта тема полезной?