numel возвращает общее количество элементов массива, а функция
length – количество элементов вектора или строки матрицы.
Пример 41. Функции size, numel, length
clc, clear
v1=[1; 2; 3; 4], v2=[1 2 3 4]
size(v1), size(v2)
length(v1),length(v2)
numel(v1),numel(v2)
M=[1 2 3; 4 5 6]
size(M), length(M), numel(M)
26
Логические операции с матрицами
Для матриц определены логические операции:
Операция
Знак
операции
Равно
==
Не равно
~=
Больше
>
Больше или равно
>=
Меньше
<
Меньше или равно
<=
Логическое И
&
Логическое ИЛИ
|
Пример 42. Подсчет количества элементов матрицы, равных двум
clc, clear
A=[1 2; 3 2]
sum(sum(A==2))
Пример 43. Подсчет количества одинаковых элементов в матрицах A и B и
стоящих на одинаковых местах
clc, clear
A=[1 2; 3 2]
B=[1 0; 3 5]
sum(sum(A==B))
27
Задачи для самостоятельного решения
Вариант 1
1. Задана матрица A=randi(*-5 5],3,3)
a) Определить количество ненулевых элементов.
b) Найти A+A', показать, что полученная матрица симметричная.
c) Определить количество элементов, равных двум.
d) Переставить верхнюю и нижнюю строки матрицы.
e) Найти сумму элементов главной диагонали матрицы.
2. Заданы 5 матриц различного порядка. Создать блочно-диагональную
матрицу, состоящую из заданных матриц-блоков. Отобразить структуру
полученной матрицы с помощью spy.
3. Заданы матрицы одинаковой размерности:
A= randi([-5 5],3,3), B= randi([-5 5],3,3)
a) Определить количество позиций, на которых стоят ненулевые
элементы в обеих матрицах.
b) Определить количество позиций, на которых, хотя бы в одной из
матриц стоят ненулевые элементы.
4. Задан вектор x=1:9. Получить из него матрицу 3-го порядка, в каждой
строке которой записаны последовательно элементы вектора.
5. Задан вектор x=1:4. Создать матрицу 4-го порядка, элементы каждой
строки (столбца) матрицы являются элементами вектора.
6. Задано целое число n и целочисленный вектор. Повторить каждый
элемент вектора n раз.
7. Задан вектор, в котором есть нулевые элементы. Каждый нулевой элемент
заменить средним арифметическим элементов вектора.
28
Вариант 2
1. Задана матрица A=randi(*-5 5],3,3)
a) Определить количество нулевых элементов.
b) Проверить – является ли матрица симметричной.
c) Определить количество элементов, неравных двум.
d) Переставить правый и левый столбцы матрицы.
e) Найти сумму элементов побочной диагонали матрицы.
2. Заданы 5 матриц различного порядка. Создать блочно-диагональную
матрицу из заданных матриц-блоков, блоки расположить вдоль побочной
диагонали. Отобразить структуру полученной матрицы с помощью spy.
3. Заданы матрицы одинаковой размерности:
A= randi([-5 5],3,3), B= randi([-5 5],3,3)
a) Определить количество позиций, на которых стоят элементы, равные
двум в обеих матрицах.
b) Определить количество позиций, на которых, хотя бы в одной из
матриц стоят элементы, равные двум.
4. Задан вектор x=1:9. Получить из него матрицу 3-го порядка, в каждом
столбце которого записаны последовательно элементы вектора.
5. Задан вектор x=1:4. Создать матрицу 4-го порядка, на диагоналях которой
стояли бы элементы вектора. Если диагональ короче size(x), то заполнение
начинать 1-го элемента вектора x.
6. Задано целое число n и целочисленный вектор. Повторить каждый
элемент вектора n раз.
7. Задан вектор, в котором есть нулевые элементы. Каждый нулевой элемент
заменить максимальным среди элементов вектора.
29
Вариант 3
1. Задана матрица A=randi(*-5 5],3,3)
a) Определить количество отрицательных элементов.
b) Проверить – является ли матрица кососимметричной.
c) Определить количество элементов, равных минус единице.
d) Переставить местами главную и побочную диагонали матрицы.
e) Найти сумму элементов, стоящих выше главной диагонали.
2. Заданы 5 матриц различного порядка. Создать матрицу из заданных
матриц-блоков, блоки расположить в углах матрицы. Отобразить структуру
полученной матрицы с помощью spy.
3. Заданы матрицы одинаковой размерности:
A= randi([-5 5],3,3), B= randi([-5 5],3,3)
a) Определить количество позиций, на которых стоят элементы, равные
максимальному значению матрицы, в обеих матрицах.
b) Определить количество позиций, на которых, хотя бы в одной из
матриц стоят максимальные элементы.
4. Задан вектор x=1:16. Получить из него матрицу 4-го порядка, в каждом
столбце которого записаны последовательно элементы вектора.
5. Задан вектор x=1:3. Создать матрицу 3-го порядка, на диагоналях которой
стояли бы элементы вектора. Если диагональ короче size(x), то заполнение
начинать 1-го элемента вектора x.
6. Задано целое число n и целочисленный вектор. Повторить каждый
элемент вектора n раз.
7. Задан вектор, в котором есть ненулевые элементы. Каждый ненулевой
элемент заменить минимальным среди элементов вектора.
30
Вариант 4
1. Задана матрица A=randi(*-5 5],3,3)
a) Определить количество элементов, равных 3.
b) Проверить – является ли матрица положительноопрделенной.
c) Определить количество неотрицательных элементов.
d) Переставить угловые элементы матрицы.
e) Найти сумму элементов, стоящих ниже главной диагонали.
2. Заданы 5 матриц различного порядка. Создать матрицу из заданных
матриц-блоков, блоки расположить вдоль 1-й строки матрицы. Отобразить
структуру полученной матрицы с помощью spy.
3. Заданы матрицы одинаковой размерности:
A= randi([-5 5],3,3), B= randi([-5 5],3,3)
a) Определить количество позиций, на которых стоят элементы, равные
максимальному отрицательному элементу матрицы, в обеих матрицах.
b) Определить количество позиций, на которых, хотя бы в одной из
матриц стоят максимальные отрицательные элементы.
4. Задан вектор x=1:16. Получить из него матрицу 4-го порядка, в каждой
строке которой записаны последовательно элементы вектора.
5. Задан вектор x=1:3. Создать матрицу 3-го порядка, на диагоналях которой
стояли бы элементы вектора. Если диагональ короче size(x), то заполнение
начинать 1-го элемента вектора x.
6. Задано целое число n и целочисленный вектор. Повторить каждый
элемент вектора n раз.
7. Задан вектор, в котором есть ненулевые элементы. Каждый ненулевой
элемент заменить средним значение среди элементов вектора.
31
Графика в MatLab
Система MATLAB предоставляет огромное количество графических
средств. К ним относятся команды построения простых графиков функций,
комбинированные и презентационные графики, элементы анимации и сред-
ства проектирования графического пользовательского интерфейса (GUI).
Построение графиков функций
Рассмотрим на примерах способы построения графиков в ML. Если
заданы два вектора одинакового размера, хранящие координаты функции,
то построить график функции можно с помощью команды plot.
Пример 1. Построение графика функции
% задание вектора x
x = [0:0.005:5];
% расчет значений функции
y = exp(-x).*sin(10*x);
% построение графика функции
plot(x, y)
Графическое окно пакета MatLab
32
После выполнения скрипта из примера #1 на экране возникнет графическое
окно, выполняя команды меню этого графического окна File→Save as,
File
Export Setup, можно сохранить построенный график в файл MatLab с
расширением fig, либо экспортировать в графические форматы - png, eps, gif.
Файл с расширением fig можно открыть в MatLab. Результатом открытия
файла будет графическое окно.
Несколько графиков в одном графическом окне
Для того, чтобы построить еще один график в этом же графическом
окне, то можно действовать двумя путями – воспользоваться командой hold
on, либо добавить еще два аргумента в команду plot. С помощью функции
delete производят удаление графика.
Пример 2. Два графика функции в одних осях с помощью hold on
x = [0:0.005:5];
y1 = exp(-x).*sin(10*x);
y2 = exp(-x).*cos(10*x);
% построение первого графика функции
plot(x, y1)
% продолжать построение в этом же окне
hold on
% построение второго графика функции
plot(x, y2)
Пример 3. Два графика функции в одних осях с помощью plot
x = [0:0.005:5];
y1 = exp(-x).*sin(10*x);
y2 = exp(-x).*cos(10*x);
% построение сразу двух графиков функций
plot(x, y1, x, y2)
33
Установка параметров графиков
Задать цвет и тип линии для графиков можно несколькими способа-
ми. Рассмотрим один из этих способов на примере.
Пример 4. Задание цвета и типа линии для графика
x = [0:0.005:5];
y = exp(-x).*sin(10*x);
plot(x, y,
'r:'
)
Обозначения для типа линий, цветов и маркеров приведены в таблице ниже.
Цвет
Y
Желтый
M
Розовый
C
Голубой
R
Красный
G
Зеленый
B
Синий
W
Белый
K
Черный
Линия
Достарыңызбен бөлісу: |