Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
matlab_final.doc
Скачиваний:
80
Добавлен:
24.09.2019
Размер:
5.3 Mб
Скачать

1.3. Создание матриц

До сих пор в примерах использовались только одиночные числа (дробные и комплексные), но в MATLAB основным типом переменных являются матрицы, и даже те числа, которые встречались в примерах, с точки зрения MATLAB являются матрицами размерностью 1 x 1. В этом можно убедиться, воспользовавшись командой whos, которая выводит информацию о переменных.

>> clear

>> x = 10;

>> y = 5 + 10i;

>> whos

Name Size Bytes Class Attributes

x 1x1 8 double

y 1x1 16 double complex

Команда whos выводит информацию обо всех созданных переменных в виде столбцов: "Name" – имя переменной, "Size" – размерность матрицы, "Bytes" – объем памяти, который занимает переменная, столбцы "Class" и "Attributes" характеризуют тип переменной.

С помощью команды whos можно вывести информацию о конкретной переменной, для этого команде whos надо передать строку, содержащую имя переменной, о которой надо получить информацию:

>> whos 'x'

Name Size Bytes Class Attributes

x 1x1 8 double

Из выполнения команды whos видно, что переменные x и y представляют собой матрицы, размером 1 x 1. Для создания матриц нужной размерности используются квадратные скобки. Для создания матрицы-строки (вектора-строки) нужно перечислить элементы матрицы в квадратных скобках, разделяя элементы (столбцы матрицы) пробелом или запятыми.

>> a = [1 5 -2 10]

a =

1 5 -2 10

>> b = [0.5, -1, 2.5, 0]

b =

0.5000 -1.0000 2.5000 0

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

>> whos 'a' 'b'

Name Size Bytes Class Attributes

a 1x4 32 double

b 1x4 32 double

Из результата выполнения этой команды видно, что переменные a и b представляют собой матрицы размером 1 x 4 (одна строка, четыре столбца), и каждая переменная занимает в памяти 32 байта вместо 8 байт, занимаемых одним элементом.

Для создания матрицы-столбца также используются квадратные скобки, только элементы матрицы (строки) разделяются переводом строк или точками с запятыми:

>> c = [ 1

0.2

11

-13]

c =

1.0000

0.2000

11.0000

-13.0000

>> whos 'c'

Name Size Bytes Class Attributes

c 4x1 32 double

Или

>> c = [1; 0.2; 11; -13]

c =

1.0000

0.2000

11.0000

-13.0000

Другой способ создания матриц-столбцов заключается в том, что можно объявить матрицу-строку и применить к ней операцию транспонирования. Для транспонирования в MATLAB предусмотрена команда «.'» (точка с одиночной кавычкой).

>> c = [1, 0.2, 11, -13].'

c =

1.0000

0.2000

11.0000

-13.0000

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

>> d = [1 0 0.5 -11

12 -0.1 0.1 7

0.33, 2.5 3 4]

d =

1.0000 0 0.5000 -11.0000

12.0000 -0.1000 0.1000 7.0000

0.3300 2.5000 3.0000 4.0000

>> whos 'd'

Name Size Bytes Class Attributes

d 3x4 96 double

Или

>> d = [1 0 0.5 -11; 12 -0.1 0.1 7; 0.33 2.5 3 4]

d =

1.0000 0 0.5000 -11.0000

12.0000 -0.1000 0.1000 7.0000

0.3300 2.5000 3.0000 4.0000

На практике часто нужно создавать матрицы определенного вида, например, нулевую матрицу, единичную матрицу и т.п. Для облегчения создания таких матриц предусмотрены специальные функции. В частности, для создания нулевых матриц используется функция zeros. Функция zeros может принимать разное количество параметров. Для создания нулевой матрицы с заданным количеством строк и столбцов используется функция zeros с двумя параметрами, первый параметр функции – это количество строк, второй параметр – количество столбцов.

>> x = zeros (4, 2)

x =

0 0

0 0

0 0

0 0

Если нужно создать квадратную нулевую матрицу, то достаточно в функцию zeros передать один параметр, задающий размерность матрицы.

>> y = zeros (4)

y =

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

Аналогично работают функции ones и eye. Функция ones предназначена для создания матриц, содержащих все единицы, а функция eye предназначена для создания единичных матриц, то есть матриц, содержащих единицы на главной диагонали, в то время как остальные элементы нулевые.

>> ones (4)

ans =

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

>> ones (4, 2)

ans =

1 1

1 1

1 1

1 1

>> eye (4)

ans =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

>> eye (4, 2)

ans =

1 0

0 1

0 0

0 0

Кроме того, на практике часто встречаются задачи, когда необходимо создать матрицу-строку (или столбец) и заполнить ее последовательностью чисел с равным шагом. Для создания таких матриц в MATLAB предусмотрен следующий синтаксис:

первый элемент: шаг: последний элемент.

Например, для создания матрицы и заполнения ее числами от 1 до 5 с шагом 0.5, нужно выполнить следующую команду:

>> x = 1: 0.5: 5

x =

1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000

Если шаг равен 1, то его можно опустить:

>> x = 0: 10

x =

0 1 2 3 4 5 6 7 8 9 10

Кроме того, шаг может быть отрицательным:

>> x = 10: -1: 0

x =

10 9 8 7 6 5 4 3 2 1 0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]