Работа с векторами матлаб

Работа с векторами матлаб

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

Ниже показан пример задания вектора с именем a, и содержащий значения 1, 2, 3, 4:

a = [1 2 3 4]; % вектор-строка

Для доступа к тому или иному элементу вектора используется следующая конструкция языка:

disp( a(1) ); % отображение значения 1-го элемента вектора
disp( a(2) ); % отображение значения 2-го элемента вектора
disp( a(3) ); % отображение значения 3-го элемента вектора
disp( a(4) ); % отображение значения 4-го элемента вектора

т.е. нужно указать имя вектора и в круглых скобках написать номер индекса элемента, с которым предполагается работать. Например, для изменения значения 2-го элемента массива на 10 достаточно записать

a(2) = 10; % изменение значения 2-го элемента на 10

Часто возникает необходимость определения общего числа элементов в векторе, т.е. определения его размера. Это можно сделать, воспользовавшись функцией length() следующим образом:

N = length(a); % (N=4) число элементов массива а

Если требуется задать вектор-столбец, то это можно сделать так

a = [1; 2; 3; 4]; % вектор-столбец

b = [1 2 3 4]’; % вектор-столбец

при этом доступ к элементам векторов осуществляется также как и для векторов-строк.

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

a = [1 2 3 4]; % начальный вектор a = [1 2 3 4]
b = [a 5 6]; % второй вектор b = [1 2 3 4 5 6]

Здесь вектор b состоит из шести элементов и создан на основе вектора а. Используя этот прием, можно осуществлять увеличение размера векторов в процессе работы программы:

a = [a 5]; % увеличение вектора а на один элемент

Недостатком описанного способа задания (инициализации) векторов является сложность определения векторов больших размеров, состоящих, например, из 100 или 1000 элементов. Чтобы решить данную задачу, в MatLab существуют функции инициализации векторов нулями, единицами или случайными значениями:

a1 = zeros(1, 100); % вектор-строка, 100 элементов с
% нулевыми значениями
a2 = zeros(100, 1); % вектор-столбец, 100 элементов с
% нулевыми значениями
a3 = ones(1, 1000); % вектор-строка, 1000 элементов с
% единичными значениями
a4 = ones(1000, 1); % вектор-столбец, 1000 элементов с
% единичными значениями
a5 = rand(1000, 1); % вектор-столбец, 1000 элементов со
% случайными значениями

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

E = [1 0 0; 0 1 0; 0 01]; % единичная матрица 3х3

E = [1 0 0
0 1 0
0 0 1]; % единичная матрица 3х3

Аналогичным образом можно задавать любые другие матрицы, а также использовать приведенные выше функции zeros(), ones() и rand(), например:

A1 = zeros(10,10); % нулевая матрица 10х10 элементов

A2 = zeros(10); % нулевая матрица 10х10 элементов
A3 = ones(5); % матрица 5х5, состоящая из единиц
A4 = rand(100); % матрица 100х100, из случайных чисел

Для доступа к элементам матрицы применяется такой же синтаксис как и для векторов, но с указанием строки и столбца где находится требуемый элемент:

A = [1 2 3;4 5 6;7 8 9]; % матрица 3х3
disp( A(2,1) ); % вывод на экран элемента, стоящего во
% второй строке первого столбца, т.е. 4
disp( A(1,2) ); % вывод на экран элемента, стоящего в
% первой строке второго столбца, т.е. 2

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

B1 = A(:,1); % B1 = [1; 4; 7] – выделение первого столбца
B2 = A(2,:); % B2 = [1 2 3] – выделение первой строки
B3 = A(1:2,2:3); % B3 = [2 3; 5 6] – выделение первых двух
% строк и 2-го и 3-го столбцов матрицы А.

Размерность любой матрицы или вектора в MatLab можно определить с помощью функции size(), которая возвращает число строк и столбцов переменной, указанной в качестве аргумента:

a = 5; % переменная а
A = [1 2 3]; % вектор-строка
B = [1 2 3; 4 5 6]; % матрица 2х3
size(a) % 1х1
size(A) % 1х3
size(B) % 2х3

© 2022 Научная библиотека

Копирование информации со страницы разрешается только с указанием ссылки на данный сайт

Видео:MATLAB 04 Массивы и матрицыСкачать

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

Действия с векторами и матрицами в MATLAB

РАБОТА В РЕЖИМЕ ПРЯМЫХ ВЫЧИСЛЕНИЙ

1) Вычисляемое выражение набирается, редактируется (если нужно) в командной строке, ввод завершается нажатием клавиши ENTER.

Средства для редактирования в командной строке: клавиши ← и → — перевод курсора вдоль строки, Home, End – быстрый переход к началу и концу строки, ↑ и ↓ — клавиши перелистывания строк (с их помощью в командной строке можно восстановить для редактирования и выполнения ранее выполнявшиеся операторы), клавиши Delete и Backspace (← в верхней строке клавиатуры) – для удаления символа над курсором и слева от него. Кроме того, в командном окне имеется сверху панель инструментов, позволяющая делать стандартные операции копирования, удаления, вставки из буфера обмена и др.

2) Для переноса длинного выражения на другую строку используется многоточие (… — три или более точек в конце строки). При нажатии ENTER курсор переместится в начало следующей строки, где можно продолжать набор оператора.

3) Основные системные переменные:

pi – значение числа π

ans – хранит результат последней выполненной операции (в том числе

и если этот результат – массив чисел). К ней можно обращаться

по имени, что бывает удобно при программировании.

inf — символ машинной бесконечности. Положительная величина,

которая больше чем любое представимое в оперативной памяти

компьютера положительное число, что так же бывает удобно

иметь при составлении алгоритмов.

i- мнимая единица – sqrt(-1). MATLAB выполняет действия в алгебре

комплексных чисел вида z = x+ i*y, где x – вещественная часть,

y – мнимая часть числа.

4) Знаки основных арифметических операций:

‘+ ‘- сложение, ‘-‘ – вычитание , ‘*’ – умножение, ‘/’ – деление слева направо, ’’ – деление справа – налево, ‘^’ – возведение в степень.

Знаки операций применимы к векторным и матричным операндам.

Так, результаты операций A/B и BA могут быть различны. Кроме того, одна из этих операций может быть возможна, в то время как другая – нет. Первая: A/B выполняется как A*inv(B), а вторая: BA – как inv(B)*A. Вспомним, что умножение матриц не обладает свойством коммутативности. Знак умножения, примененный к матричным операндам, выполняет операцию умножения матриц по правилам матричной алгебры.

5)Постановка знака ‘;’в конце вычисляемого выражения не обязательна, его присутствие блокирует вывод на экран компьютера результата выполнения выражения, после которого он поставлен. Установка точки с запятой в конце каждого оператора желательна при написании М-программ, особенно – когда промежуточными результатами являются массивы чисел. (Заметим, правда, что иногда полезно умышленно опустить точку с запятой, если вывод вычисленного значения оператора желателен).

Действия с векторами и матрицами в MATLAB

Перейдем теперь в командное окно MATLAB. Выполните в командном окне предлагаемые далее действия с матрицами. При этом данный текст лучше не закрывать, а свернуть его, нажав на кнопку “-“ в правом верхнем углу окна Microsoft Word. (В этом случае вы сможете восстановить этот текст в процессе работы, активизируя его нажатием левой клавиши мыши на нижней панели)

Задание 1: (действия с векторами)

1) Введите вектор ‘a’ из 9 элементов. С экрана элементы вектора вводятся в квадратных скобках, разделяемые пробелом.

a = [1 2 3 4 6 4 3 4 5] % Вводите свой вектор с другими значениями.

Нажмите ENTER, посмотрите на сообщение на экране.

2) Теперь выполните то же но с точкой с запятой:

a = [1 2 3 4 6 4 3 4 5]; % Используйте клавиши перелистывания ↑ и ↓, чтобы не

% повторять набор заново!!

Нажмите ENTER, посмотрите на сообщение на экране.

3) Прибавьте число 2 к элементам вектора а :

b = a + 2 % Сейчас мы умышленно не ставим точку с запятой, чтобы

% посмотреть на результат

4) Транспонируем вектор b:

C=b’ % Знак транслонирования матрицы – апостроф ‘ (соответствует

% клавише буквы Э на нижнем регистре латиницы)

5) Попробуйте выполнить операцию

D= a+C % убедитесь, что она невозможна, поймите почему (?).

6) Постройте график значений элементов вектора b относительно номера компоненты:

MATLAB может строить графики, используя указываемые ему символы.

Постройте тот же график звездочками:

ГЕНЕРАЦИЯ ВЕКТОРОВ (ранжированных переменных, т.е. массивов с постоянным шагом)

X=1:10 % шаг 1 % не ставьте точки с запятой, наблюдайте результаты

Y=0:0.25:1 % шаг 0.25

Z=0:pi/4:2*pi % шаг pi/4

Задание 2: (действия с матрицами)

% Создание матриц производится так же как и создание векторов, при этом

% используется знак (;) , чтобы отделить вводимые строки матрицы.

Введите матрицу размерности (3,3):

A = [1 2 0; 2 5 -1; 4 10 -1] % Введите свои значения. Не ставьте блокировку (;),

% чтобы следить за результатами.

Транспонируйте матрицу ‘A’ :

Возведите квадратную матрицу в 5 степень:

Найдите обратную матрицу:

I =A*inv(A) % ясно, что должна получиться единичная матрица

Вычислите определитель матрицы:

Найдите собственные значения матрицы:

% Функция «poly» генерирует вектор, элементами которого являются

% коэффициенты характеристического многочлена матрицы:

% Функция “round” округляет до ближайшего целого

% Корни многочлена p – характеристические значения исходной матрицы

% Таким образом, мы можем найти собственные значения матрицы оператором

roots(p) % Выполните вычисления этим способом

% В любой момент мы можем получить список значений переменных, хранящихся в памяти

% используя команды «who» или «whos».

Выполните:

% Вы можете получить на экране значение любой переменной, набрав в командной строке имя переменной и нажав вслед за тем ENTER.

ПОЭЛЕМЕНТНОЕ ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ

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

x=[1 2 3 4] и y=[5 6 7 8].

Предположим, что вам хотелось бы перемножить (поделить, возвести в степень) элементы векторов x и y.

Если мы напишем x*y или x/y или x^3, то получим сообщение об ошибке, так как строки нельзя перемножить, разделить друг на друга по правилам матричной алгебры (несоответствие размерностей). Однако для получения желаемого результата в MATLAB есть дубли арифметических операций. Они имеют те же значки, что и основные операции, но с точкой перед знаком операции.

Выполните в командном окне:

x.*y % Результат – вектор, элементы которого равны произведениям соответствующих элементов векторов x и y

x./y % Элементы x будут поделены на соответствующие элементы y

x.^3 % Элементы вектора x будут возведены в 3-ю степень.

MATLAB работает с комплексными числами и бесконечными величинами.

ГЕНЕРАЦИЯ СПЕЦИАЛЬНЫХ МАТРИЦ:

Для создания специальных матриц существуют функции:

zeros – создание матрицы с нулевыми элементами,

ones — создание матрицы с единичными элементами,

rand – создание матрицы со случайными элементами (равномерно на [0,1] распределенными случайными числами),

Видео:Работа с массивами. Вектор столбцы и вектор строки 1. Урок 7Скачать

Работа с массивами. Вектор столбцы и вектор строки 1. Урок 7

MATLAB — Векторы

Вектор — это одномерный массив чисел. MATLAB позволяет создавать два типа векторов —

  • Векторы строк
  • Векторы столбцов

Видео:Основы МАТЛАБ.РАБОТА С МАССИВАМИ. ВЕКТОРЫ-СТОЛБЦЫ И ВЕКТОРЫ-СТРОКИСкачать

Основы МАТЛАБ.РАБОТА С МАССИВАМИ. ВЕКТОРЫ-СТОЛБЦЫ И ВЕКТОРЫ-СТРОКИ

Строки Векторы

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

MATLAB выполнит приведенный выше оператор и вернет следующий результат —

Видео:Основы линейной алгебры. 2. Векторы. Часть 1Скачать

Основы линейной алгебры. 2. Векторы. Часть 1

Векторы столбцов

Векторы столбцов создаются заключением набора элементов в квадратные скобки с использованием точки с запятой для разделения элементов.

MATLAB выполнит приведенный выше оператор и вернет следующий результат —

Видео:Операции над векторами matlabСкачать

Операции над векторами matlab

Ссылка на элементы вектора

Вы можете ссылаться на один или несколько элементов вектора несколькими способами. I- й компонент вектора v обозначается как v (i). Например —

MATLAB выполнит приведенный выше оператор и вернет следующий результат —

Когда вы ссылаетесь на вектор с двоеточием, например, v (:), в нем отображаются все компоненты вектора.

🎬 Видео

Математика это не ИсламСкачать

Математика это не Ислам

2-4 MATLAB - Матрицы и индексацияСкачать

2-4 MATLAB - Матрицы и индексация

Matlab создание вектора данныхСкачать

Matlab создание вектора данных

Самый короткий тест на интеллект Задача Массачусетского профессораСкачать

Самый короткий тест на интеллект Задача Массачусетского профессора

НейроМаяк. Открытое рисование с Автором метода / Павел Пискарёв, D. Sc., Prof.Скачать

НейроМаяк. Открытое рисование с Автором метода / Павел Пискарёв, D. Sc., Prof.

Поэлементные операции с векторами. Работа с массивами. Урок 11Скачать

Поэлементные операции с векторами. Работа с массивами. Урок 11

Матрицы и векторыСкачать

Матрицы и векторы

Новости ИИ: Meta тренирует Llama 3, первый не АИ генератор картинок, конкуренты GPT 4Скачать

Новости ИИ: Meta тренирует Llama 3, первый не АИ генератор картинок, конкуренты GPT 4

MATLAB 01 Начало работыСкачать

MATLAB 01 Начало работы

Работа с массивами. Вектор столбцы и вектор строки 2. Урок 8Скачать

Работа с массивами. Вектор столбцы и вектор строки 2. Урок 8

Вектор. Сложение и вычитание. 9 класс | МатематикаСкачать

Вектор. Сложение и вычитание. 9 класс | Математика

Работа с массивами. Обращение к элементам вектора. Урок 9Скачать

Работа с массивами. Обращение к элементам вектора. Урок 9

Что такое вектора? | Сущность Линейной Алгебры, глава 1Скачать

Что такое вектора? | Сущность Линейной Алгебры, глава 1

MatLab. 3. 2b. Сложение, вычитание и умножение векторовСкачать

MatLab. 3. 2b. Сложение, вычитание и умножение векторов
Поделиться или сохранить к себе: