Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебник Математические пакеты

.pdf
Скачиваний:
45
Добавлен:
23.12.2022
Размер:
6.39 Mб
Скачать

Символы, специальные операции и примеры их использованияТаблица 1.2.2-1

Сим

Название

Роль

Описание

Примеры

вол

символа

 

 

 

.

Точка

Десятичная точка.

Точка разделяет целую и дробную ча-

Десятичная точка:

 

 

Операции.

сти числа, используется в поэлемент-

102.5543

 

 

Доступ к элементам

ных операциях, позволяет получать

Поэлементные операции:

 

 

структуры.

доступ к полям в структуре.

A.* B

 

 

 

 

Доступ к полям структур

 

 

 

 

Struct.f1

...

Многоточие

Продолжение строки.

Три или более точки в конце строки

Продолжает ввод выражен

 

 

 

продолжают текущую команду на сле-

--> f=5*x^7+%e*(35*sin(

 

 

 

дующей строке.

> 7+x-a(5)/8);

 

 

 

 

 

 

 

Разделитель.

Запятые разделяют элементы строки в

Отделяет элементы строк

,

 

 

 

 

массиве, индексы массива, аргументы

mA = [12,13; 14,15]

 

 

 

функций и команд.

Отделяет индексы:

 

 

 

 

mА(1,2)

 

 

 

 

Отделяет входные и выхо

 

 

 

 

[Y, I] = max (A, [], 2)

 

 

 

 

Отделение нескольких ко

 

 

 

 

mА(1, 2), [Y, I] = max(

 

 

 

 

 

:

Двоеточие

Создание

Оператор двоеточия позволяет созда-

Создает вектор:

 

 

вектора.

вать регулярные интервалы векторов,

x = 1:10, x = 1: 3: 19

 

 

Индексирование.

производить индексирования в масси-

Изменяет матрицу на век

 

 

Итерация для цикла.

вах и определять границы циклаfor.

А (:)

 

 

 

 

Присваивает новые значе

 

 

 

 

A = rand(3,4);A(:) = 1:

 

 

 

 

Определяет диапазон инд

 

 

 

 

А(:), А (:, 3)

 

 

 

 

Определяет границы цикл

 

 

 

 

x = 1;

 

 

 

 

for k = 1:25

 

 

 

 

x = x + x.^ 2;

 

 

 

 

end

 

 

 

 

 

 

Точка с за-

Разделитель.

Точка с запятой разделяетописание

Отделяет строки при соз

;

 

пятой

Знак конца строки.

строкипри созданиимассива, подав-

A = [12,13; 14,15]

 

 

Подавление вывода

ляет отображения строки кода и

Подавляет вывод:

 

 

строки.

вывод результата.

Y = max(A);

 

 

 

 

Разделяет несколько ком

 

 

 

 

А = 12.5; B = 42.7, C =

 

 

 

 

B =

 

 

 

 

42.7000

 

 

 

 

 

 

 

()

Круглые

Последовательность

Круглые скобки определяют последо-

Определяет последовател

 

скобки

операций.

вательность операций в выражениях,

(A.* (B./C)) - D

 

 

Заключает списокпара-

внутри скобок перечисляются пара-

Заключают списокпарамет

 

 

метров функций и ин-

метры функций и индексы в массиве.

fun(X, Y ,Z)

 

 

дексы.

 

Заключают список индекс

 

 

 

 

А (3, :), А (1,2), А

 

 

 

 

 

[]

Квадратные

Конструктор массива.

Квадратные скобки осуществляют по-

Конструирует вектора:

 

скобки

Удаление пустой мат-

строение и конкатенацию массивов,

X = [10 12 -3]

 

 

рицы и ее элемента.

создание пустых матриц, удаление

Создает пустую матрицу:

 

 

Определение вектора

элементов массивов и определяют век-

A = []

 

 

выходных параметров.

торвыходных параметров функций.

Удаляет столбец матрицы

 

 

 

 

A (:, 1) = []

 

 

 

 

Определяет выходные пар

 

 

 

 

[C, iA, iB] = uni5(

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

221

Сим

Название

Роль

Описание

Примеры

вол

символа

 

 

 

{}

Фигурные

Конструктор массива

Фигурныескобки осуществляют по-

Конструирует массив яче

 

скобки

ячеек.

строение массива ячеек или опреде-

C = {[2.6 4.7 3.9], ran

 

 

 

ляют доступ к ним.

Реализует индексациюв м

 

 

 

 

A = C {4,7,2}

//

Слеш

Комментарии

// Определяет комментарии в конце

Добавляет в программный

 

 

 

строки или в целой строке.

//Цель этого цикла - вы

 

 

 

 

 

/*

Слеш

Блок

/* Комментарии */ определяет блок

Добавляет в программный

*/

звездочка

комментариев

комментариев, которые располагаются

/*

 

 

 

 

 

на нескольких строках

Комментарий ...

 

 

 

 

*/

 

 

 

 

 

 

 

 

 

 

Процент

Указатель системных

Знак процента используется для указа-

Указатель на системную

%

 

 

констант

ния на системную константу.

%e, %pi, %i

 

 

 

 

 

$

Доллар

Команда операционной

Последний индекс элемента массива.

Указатель последнего ин

 

 

системы

 

A(1:2:$)

 

 

 

 

 

%{

Процентная

Блок

%{Комментарии %} определяет блок

Добавляет многострочные

%}

фигурная

комментариев

комментариев , которые располага-

% {

 

 

 

скобка

 

ются на несколькихстроках программ-

Комментарий ...

 

 

 

ного кода

%}

 

 

 

 

 

 

 

'

Одинарные

Конструктор

Используется для создания символь-

Создает символьную пере

 

кавычки

строк.

ной переменной.

chr = 'Привет'

 

 

 

 

 

"

Двойные

Конструктор

Используется для создания строковых

Создает символьную пере

 

кавычки

строк

скаляров типа string.

S = "Привет, Ректор

 

 

 

 

 

~

Тильда

Логическое НЕ.

Используется для представления логи-

Определяет неравенство:

 

 

Заполнитель аргумен-

ческого отрицания или для подавле-

A = [1 -1; 0 1]; B

 

 

тов

ния конкретных входных или выход-

А ~ = В

 

 

 

ных параметров.

Возвращает только треть

 

 

 

 

[~, ~, iB] = Fun3 (

 

 

 

 

 

=

Знак равен-

Присваивание.

Используется для присваивания значе-

Создает матрицу A и B,

 

ства

 

ний переменной.

A = [1 0; -1 0];

 

 

 

 

B = A;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

222

Приложение 1.3

 

Функции, используемые для создания специальных матриц

.

Таблица 1.3.2-1

 

 

 

Функции

Описания

 

 

 

Примеры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

--> A = ones()

 

 

 

 

значениями 1

A =

1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A = ones()

Возвращается скаляр со значениями 1.

-->A = ones(2,3)

 

 

Возвращается матрицаn×n со значениями

 

 

A = ones(n,n)

элементов матрицы равными1.

A =

 

 

 

 

 

 

 

 

 

 

 

1.

 

1.

1.

 

 

 

 

 

 

Возвращается матрица n×m со значениями

 

 

 

 

 

 

A = ones(n,m)

 

1.

 

1.

1.

 

 

 

 

ми матрицы равные 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A = ones(B)

Возвращается матрица со значениями

--> B = [2 3; 4 5];

 

 

элементов матрицы равными1 и характе-

 

 

 

 

--> A = ones(B)

 

 

 

 

ристиками, аналогичными характеристи-

A =

 

 

 

 

 

 

 

 

 

 

ками матрицы B.

 

 

 

 

 

 

 

 

 

 

 

1. 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

 

1.

 

 

 

 

 

 

 

 

 

 

 

 

 

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

--> A= zeros()

 

 

 

 

 

 

 

 

значениями 0

A =

0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A = zeros()

Возвращается скаляр со значениями 0.

--> A = zeros(2,3)

 

 

Возвращается матрицаn×n со значениями

 

 

 

 

элементов матрицы равными 0.

 

 

 

 

 

 

 

 

 

A = zeros(n,n)

 

A =

 

 

 

 

 

 

 

 

 

Возвращается матрица n×mсо значениями

 

 

 

 

 

 

 

 

 

 

 

0.

 

0.

0.

 

 

 

 

 

 

элементов матрицы равными 0.

 

 

 

 

 

 

A = zeros(n, m)

 

 

0.

 

0.

0.

 

 

 

 

 

Возвращается матрица со значениями

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A = zeros(B)

 

элементов матрицы равными 0и характе-

--> B = [2 3; 4 5];

 

 

 

 

ристиками, аналогичными характеристи-

--> A = zeros(B)

 

 

 

 

ками матрицы B.

 

 

 

 

A =

 

 

 

 

 

 

 

 

 

 

 

 

0.

 

0.

 

 

 

 

 

 

 

 

 

0.

 

0.

 

 

 

 

 

 

 

 

 

 

 

 

 

Создание матрицы со значениями

--> D1 = eye()

 

 

 

 

1 на главной диагонали и 0 во

D1

=

 

 

 

 

 

 

 

 

 

всех других элементах

--> eye *

 

 

 

 

 

 

 

 

 

 

1.

 

 

 

 

 

 

 

D = eye()

Возвращается единичная матрица неопре-

--> D2 = eye(3,3)

 

 

деленного размера со значениями 1. Раз-

 

 

 

 

D

=

 

 

 

 

 

 

 

 

 

меры будут определены, когда данная еди-

 

0.

0.

 

 

 

 

 

 

ничная матрица будет просуммирована с

 

1.

 

 

 

 

 

 

 

 

0.

 

1.

0.

 

 

 

 

 

 

матрицей фиксированного размера.

 

 

 

 

 

 

 

 

 

0.

 

0.

1.

 

 

 

 

 

 

Возвращается матрица n×nсо значениями

 

 

 

 

 

 

D = eye(n,n)

 

 

 

 

 

 

 

 

 

элементов на главной диагонали равные 1

 

 

 

 

 

 

 

 

 

 

 

--> D3 = eye(2,3)

 

 

 

 

и0в остальных элементах.

 

 

 

 

D3 =

 

 

 

 

 

 

 

 

Возвращается матрица n×m со значениями

 

 

 

 

 

 

D = eye(n,m)

 

1.

 

0.

0.

 

 

 

 

элементов на главной диагонали равные

 

 

 

 

 

 

 

 

 

0.

 

1.

0.

 

 

 

 

 

 

1и0в остальных элементах.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D = eye(V)

Возвращается матрица со значениями

--> V = [1252 14];

 

 

элементов на главной диагонали равные

 

 

 

 

--> D4 = eye(V)

 

 

 

 

1и0в остальных элементах. Размер мат-

 

 

 

 

D4 =

 

 

 

 

 

 

 

 

рицы определяется размером вектора V.

 

 

 

 

 

 

 

 

 

1.

 

0.

0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.

 

1.

0.

 

 

 

 

 

 

 

 

0.

 

0.

1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

223

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функции

Описания

 

Примеры

 

 

 

 

 

 

 

 

 

 

 

 

Создание диагонали квадратной

--> V = [13 62 94];

 

 

 

 

 

 

 

 

 

 

матрицы из заданного вектора;

--> A = zeros (3,3);

 

 

 

 

 

создание диагональной матрицы

--> A = diag(V)

 

 

 

 

 

 

 

A =

 

 

 

 

 

 

 

 

 

и вектора из диагонали квад-

 

 

 

 

 

 

 

 

 

13.

0.

 

0.

 

 

 

 

 

 

ратной матрицы

 

 

 

 

 

 

 

0.

62.

 

0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Возвращается матрицаn×nсо значениями

0.

0.

 

94.

 

 

A = diag(V)

 

 

 

 

 

 

 

 

 

элементов вектора Vна главной диаго-

 

 

 

 

 

 

 

 

 

 

--> A = diag(V,-1)

 

 

 

 

 

нали.

 

 

 

 

 

A =

 

 

 

 

 

 

 

 

 

Помещаются значения элементов век-

 

 

 

 

 

 

A = diag(V, k)

 

0.

0.

0.

0.

 

 

 

 

 

тора Vна k-ю диагональ, где

13.

0.

0.

0.

 

 

 

 

 

k=0представляет собой главную диаго-

0.

62. 0.

0.

 

 

 

 

 

наль, k>0представляет диагональ, кото-

0.

0. 94. 0.

 

 

 

 

 

 

рая находится выше главной диагонали

--> V= diag(A,-1)

 

 

 

 

 

и k<0представляет диагональ, которая

 

 

 

 

 

V =

 

 

 

 

 

 

 

 

 

находится ниже главной диагонали.

 

 

 

 

 

 

V = diag(A)

 

13.

 

 

 

 

 

 

 

Возвращается вектор-столбец главных

 

 

 

 

 

 

 

 

 

62.

 

 

 

 

 

 

 

 

 

диагональных элементов матрицы A.

 

 

 

 

 

 

 

 

 

94.

 

 

 

 

 

 

 

 

 

Возвращает вектор-столбец элементов

 

 

 

 

 

 

V= diag(A, k)

 

 

 

 

 

 

 

 

 

 

 

на k-й диагонали A.

 

 

 

 

 

 

 

 

 

 

V – вектор или матрица, k – целое

 

 

 

 

 

 

 

 

 

 

число (значение по умолчанию равно 0),

 

 

 

 

 

 

 

 

 

 

A– вектор или матрица.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Создание матрицы с равномерно

--> B=[2 4; 3 5];

 

 

 

 

 

распределенными случайными

--> A=rand(3, 2)

 

 

 

 

 

 

 

числами

A =

 

 

 

 

 

 

 

 

 

0.84155

0.87841

 

 

 

 

 

 

 

 

A = rand(n,m)

Возвращается матрицу с равномерно

0.4062

 

0.11384

 

 

 

 

 

0.40948

0.19983

 

 

 

 

 

распределенными случайными чис-

 

 

 

 

 

 

 

 

 

 

 

 

A = rand(B)

лами в диапазоне [0; 1].

--> A=rand(B)

 

 

 

 

 

Возвращается матрицу с равномерно

 

 

 

 

 

 

 

 

распределенными случайными чис-

A =

 

 

 

 

 

 

 

 

 

0.56187

0.6854

 

 

 

 

 

лами в диапазоне [0; 1] того же

 

 

 

 

 

0.58962

0.89062

 

 

 

 

 

размера, что и матрица В.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Создание матрицы c нормально

--> B=rand(3,2,'normal')

 

 

 

 

 

 

 

 

 

 

распределенными случайными

B=

 

 

 

 

 

 

 

 

 

числами в диапазоне

-1.7211

 

0.18423

 

 

 

 

 

-0.0047

 

0.1023

 

 

 

 

 

 

 

 

 

 

 

 

Возвращается матрицу вещественных

-1.71576

-1.03329

 

 

rand(n,m, 'normal')

 

 

 

 

 

 

 

или комплексных случайных чисел с

 

 

 

 

 

 

 

 

 

 

--> A=[2 3;4 6];

 

 

 

 

 

 

 

математическим ожиданием0, дис-

 

 

 

 

 

 

 

--> B=rand(A,'normal')

 

 

 

 

 

персией 1 и размера

 

 

 

 

 

B =

 

 

 

 

 

 

 

 

 

[n; m].

 

 

 

 

 

 

randn(A, 'normal')

-1.28586

0.61078

 

 

Возвращается матрицу вещественных

 

 

 

 

 

0.59712

-1.05679

 

 

 

 

 

или комплексных случайных чисел с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

математическим ожиданием 0, дис-

 

 

 

 

 

 

 

 

 

 

персией 1 того же размера, что A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

grand

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

224

Функции

Описания

 

 

Примеры

 

 

 

 

 

 

 

 

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

--> D = repmat(1:2, 2, 2)

 

повторяющимися значениями

D =

 

 

 

 

 

 

 

 

 

 

 

 

1.

 

2.

1.

 

2.

 

 

 

 

Возвращается матрица размера m×n,

1.

 

2.

1.

 

2.

 

 

 

D = repmat(A, m, n)

 

 

 

 

 

 

 

 

 

 

состоящая из копий матрицы A, за-

 

 

 

 

 

 

 

 

 

 

 

--> A=[2 3;3 4];

 

 

 

 

 

 

 

данной вектором или матрицей.

--> D = repmat(A, 2, 2)

 

 

 

 

 

 

 

 

 

 

D =

 

 

 

 

 

 

 

 

 

 

 

 

2.

 

3.

2.

 

3.

 

 

 

 

 

 

3.

 

4.

3.

 

4.

 

 

 

 

 

 

2.

 

3.

2.

 

3.

 

 

 

 

 

 

3.

 

4.

3.

 

4.

 

 

 

 

 

 

 

 

 

 

Сцепление матриц в указанном

--> В=[1 2 3 4;5 6 7 8];

 

 

 

измерении

--> C=cat(1, A, B)

 

 

 

 

 

 

C =

 

 

 

 

 

 

 

 

 

 

Возвращается матрица, в которой

1.

 

2.

3.

 

4.

 

 

 

C=cat(dim,A,B,…)

5.

 

6.

7.

 

8.

 

 

 

происходит сцепление матриц, пе-

 

 

 

 

 

 

1.

 

2.

3.

 

4.

 

 

 

 

речисленных в параметрах. Если

 

 

 

 

 

 

5.

 

6.

7.

 

8.

 

 

 

 

dim = 1, то сцепление происходит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

по строкам входных параметров, а

--> C=cat(2, A, B)

 

 

 

 

если 2 – по столбцам.

 

 

 

 

C =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

2.

3. 4.

1. 2.3.

4.

 

 

 

5.

6.

7. 8.5.

6.

7.

8.

 

 

 

 

 

 

 

 

Генерируется заданное

--> linspace(1,2,3)

 

 

 

 

количество чисел между 2-мя

ans =

 

 

 

 

 

 

 

 

 

 

границами

1.

1.5

2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V=linspace(х1,х2,n)

Возвращается вектор-строка

-->linspace([1:2]',[3:4]',3)

М=linspace(c1,c2,n)

ans =

 

 

 

 

 

 

 

 

 

из n значений, равномерно распре-

 

 

 

 

 

 

 

 

 

 

1.

2.

3.

 

 

 

 

 

 

 

делённых точно в заданном диапа-

 

 

 

 

 

 

 

2.

3.

 

4.

 

 

 

 

 

 

 

зоне.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Возвращается вектор-строку с

--> logspace(1,2,3)

 

 

 

 

интервалами между элементами в

ans =

 

 

 

 

 

 

 

 

 

 

логарифмическом масштабе

10. 31.62277

 

100.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Возвращается вектор-строка

-->logspace([1:2]',[3:4]',3)

V=logspace(d1,d2,n)

ans=

 

 

 

 

 

 

 

 

 

из n значений, равномерно распре-

 

 

 

 

 

 

 

 

 

 

10.

 

 

100.

 

1000.

 

 

 

делённых в логарифмическом мас-

 

 

 

 

 

М=linspace(c1,c2,n)

100.

 

1000.

 

10000.

 

штабе точно

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

между 10d1 и 10d2. Если d2 = %pi,

 

 

 

 

 

 

 

 

 

 

 

то точки располагаются

 

 

 

 

 

 

 

 

 

 

 

между 10d1 и %pi.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Создание специальных матриц

--> M=testmatrix('magi',3)

 

 

 

M =

 

 

 

 

 

 

 

 

 

testmatrix('magi',n)

Возвращается матрица магического

8.

1.

6.

 

 

 

 

 

 

 

3.

5.

7.

 

 

 

 

 

 

 

квадрата размера nхn.

 

 

 

 

 

 

testmatrix('frk',n)

4.

9.

2.

 

 

 

 

 

 

Возвращается матрица Франка.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

testmatrix('hilb',n)

Возвращается матрица Гильберта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Hij=1/(i+j-1)).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

225

 

 

Функции преобразования индексаций.

Таблица 1.3.3-1

Функция

 

Описание

 

 

 

 

Примеры

 

 

Возвращается эквивалент

 

--> A = [2 6; 4 8; 3 5];

 

 

матричных индексов

 

--> l=sub2ind(size(A),3,2)

I = sub2ind(size(A), K, L)

(K и L) в линейную

 

lin =

 

 

 

 

 

6.

 

 

 

 

 

индексацию

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Где K вектор номеров

 

 

 

 

 

 

 

 

 

строк, а L вектор номеров

 

 

 

 

 

 

 

 

столбцов.

 

 

 

 

 

 

 

 

 

Возвращается эквивалент

 

--> A = [2 6; 4 8; 3 5];

 

 

линейных индексов в

 

-->[r c]=ind2sub(size(A),6)

[K, L] = ind2sub(size(A),I)

строки и столбцы

 

c

=

 

 

 

 

 

матричной индексации

 

 

2.

 

 

 

 

 

 

r

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Где I линейные индексы, а

 

 

3.

 

 

 

 

 

 

 

 

 

 

 

 

 

K и L вектора соответству-

 

 

 

 

 

 

 

 

ющих индексов.

 

 

 

 

 

 

 

Примеры применения операции двоеточия при адресации. Таблица 1.3.3-2

Функция

Описания

 

 

Примеры

 

 

 

 

 

Адресация для вектора

 

--> V = [3 6 7 8 1 5];

 

 

 

 

 

V(:) =

 

 

 

 

V(:)

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

 

3

6

7

8 1 5

 

 

V(n:m)

вектора.

 

 

 

 

 

 

 

 

 

 

Обращение к элементам вектора

 

--> V(3:5) =

 

 

 

 

от n номера до m номера.

 

7

8

1

 

 

 

 

Адресация для матрицы

 

--> mB = [1 2 3; 4 5 6];

 

 

 

 

 

--> mB(:, 2)

 

 

 

mА(:, m)

Обращение ко всем элементам m

 

ans

=

 

 

 

 

 

столбца матрицы mA.

 

2.

 

 

 

 

 

 

mА(n, :)

Обращение ко вcем элементам n

 

5.

 

 

 

 

 

 

 

столбца матрицы mA.

 

 

 

 

 

 

 

 

mА(:, m1:m2)

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

 

--> mB(1, 2 : 3)

 

 

 

 

столбцов от m1 до m2 матрицы

 

ans

=

 

 

 

 

 

mA.

 

 

2.

3.

 

 

 

 

mА(n1:n2, :)

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

 

 

 

 

 

 

 

 

 

строк от n1 до n2 матрицы mA.

 

--> mB(:, 1 : 2)

 

 

 

mA(n1:n2, 1:m2)

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

 

ans

=

 

 

 

 

 

строк от n1 до n2 и столбцов

 

1.

2.

 

 

 

 

 

от m1 до m2 матриц mA.

 

4.

5.

 

 

 

 

 

 

 

 

--> mB(1 : 2, 2 : 3)

 

 

 

 

 

ans

=

 

 

 

 

 

 

 

 

2.

3.

 

 

 

 

 

 

 

 

5.

6.

 

 

 

 

 

Адресация для вектора

 

--> M = [2 6 9; 4 2 8; 3 51];

 

 

 

 

 

--> M(1 : $, :)

 

 

 

$

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

 

ans

=

 

 

 

 

 

вектора.

 

 

2.

6.

9.

 

 

 

 

Обращение к элементам вектора

 

4.

2.

8.

 

 

 

 

до последнего номера.

 

3.

5.

1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

226

Функции, вычисляющие параметры матриц. Таблица 1.3.4-1.

Функции

Описания

Примеры

 

 

 

B = prod(A)

B = prod(A, d) B = prod(А, t)

B = sum(A)

B = sum(A, d) B = sum(А, t)

Нахождение произведения элементов матрицы

Произведение элементов матрицы по столбцам (d=1) или строкам столб-

цам (d=2).

Произведение элементов вектора или матрицы с управлением способа умножения ('native'- целочисленное, или 'double' – с плавающей точкой).

Нахождение суммы элементов матрицы

Сумма элементов матрицы по столбцам (d=1) или строкам (d=2). Сумма элементов вектора или матрицы с управлением способа суммирования('native'– целочисленное, или 'double' – с плавающей точкой)

--> V = [1 3 5]; --> prod(V)

ans = 15.

--> A = [2 6 9; 4 2 8]; --> prod(A)

ans = 6912.

--> prod(A, 1) ans =

8.12. 72.

--> prod(A, 'native') ans =

6912.

--> V=[1 3 5]; --> sum(V)

ans = 9.

--> A = [2 6 9; 4 2 8]; --> sum(A)

ans = 31.

--> sum(A, 1) ans =

6. 8. 17. --> sum(sum(A))

ans = 31.

a =

min(A)

[a,

k] = min(A)

[a,

k] = min(A, 'c')

[a,

k]

= min(A, 'r')

[a,

k]

= min(A1, 2,…)

Нахождение минимальных элементов матрицы и их индексов

Для A, вещественного вектора или матрицы, min(A) является наимень-

шим элементом A. [a, k] = min(A)

даёт дополнительно индекс минимума.

При использовании второго параметра: 'r' требуется для получения вектора-строки, где,а(j)содержал минимум j-того столбца A, k(j)даёт индекс строки, которая содержит минимум для столбца j; 'c' используется для аналогичной операции на строках A

--> A = [2 6 9;1 2 8]; --> a = min(A)

a = 1.

--> [a,k]=min(A)

k=

2.1.

a =

-->min([2,6,9; 1 2 8]) ans =

1.

227

a =

max(A)

[a,

k] = max(A)

[a,

k] = max(A, 'c')

[a,

k] = max(A, 'r')

[a,

k] = max(A, 'm')

[a,

k] = max(A1,A2,…)

Y = mean(A)

Y = mean(A, 'r') Y = mean(A, 'c') Y = mean(A, 'm')

Нахождение максимальных элементов матрицы и их индексов

Для A, вещественного вектора или матрицы, max(A) является наибольшим элементом A. [a, k] = max(A) даёт дополнительно индекс максимума. Использование второго аргумента: 'r' требуется для получения вектор-строки а такого, что, а(j) содержит максимум j-того столбца A, k(j) даёт индекс строки, которая содержит максимум для столбца j; 'c' используется для аналогичной операции на строках A; 'm' используется для совместимости с Matlab.

--> A= [2 6 9; 1 2 8]; --> a = max(A)

a = 9.

--> [a, k] = max(A)

k=

1.3.

a = 9.

-->max([2,6,9; 1,2 8]) ans =

9.

Нахождение средних значений элементов матрицы

Возвращает среднее значение элементов вектора или матрицы (A). Использование второго параметра позволяет найти: 'r'- среднее значение по столбцам; 'c' - среднее значение по строкам;'m'используется для совместимости с Matlab.

--> V

= [1 3 5];

 

--> y

= mean(V)

 

y

=

 

 

 

3.

 

 

--> A

= [2 6 9;

4 2 8];

--> y

= mean(A)

 

y

=

 

 

 

5.1666667

 

--> y

= mean(A,

'r')

y=

2 4. 8.5

--> y = mean(A, 'c')

y=

5.6666667

4.6666667

228

Примеры логического индексирования массивов. Таблица 1.3.5-1

Реализация

Нулевые и ненулевые элементы -->

X

= [1 0 2; 0 1 1; 0 0 4]

 

 

матрицы.

 

X

=

 

 

 

 

 

 

 

 

 

 

 

1.

0.

2.

 

 

 

 

 

 

Найти индексы ненулевых и нулевых эле-

 

0.

1.

1.

 

 

 

 

 

 

ментов матриц 3x3.

 

 

0.

0.

4.

 

 

 

 

 

 

 

 

-->

k1 = find(X)

 

 

 

 

 

 

 

K1

=

 

 

 

 

 

 

 

 

 

 

 

1.

5.

7.

 

8.

9.

 

 

 

 

 

-->

k2 = find(~X)

 

 

 

 

 

 

 

k2

=

 

 

 

 

 

 

 

 

 

 

 

2.

3.

4.

 

6.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Равенство конкретных

значений

-->

x

= 1: 2 : 20

 

 

 

 

 

элементов.

 

x

=

 

 

 

 

 

 

 

 

 

 

 

1.

3. 5.

7.

9.

11. 13.

15. 17.

19.

 

Чтобы найти конкретное целое значение, ис-

-->

k1 = find(x==13)

 

 

 

 

пользуй операцию== . К примеру, найти эле-

 

 

 

 

мент равный 13 в 1×10 вектор.

 

k1

=

 

 

 

 

 

 

 

 

 

 

7.

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

значение погрешности, на основе данных. В

 

 

 

 

 

 

 

 

 

 

противном случае из-за ошибки округления

-->

y

= 0 : 0.1

: 1

 

 

 

 

значений с плавающей запятой результатом

y

=

 

 

 

 

 

 

 

 

может быть пустая строка.

 

 

0.

0.1 0.2 0.3 0.4 0.50.6 0.7 0.8 0.91.

 

 

-->

k2 = find(y==0.3)

 

 

 

 

 

 

K2

=

 

 

 

 

 

 

 

 

 

 

 

[]

 

 

 

 

 

 

 

 

 

 

-->

k3 = find(abs(y - 0.3) < 0.0001)

 

 

K3

=

 

 

 

 

 

 

 

 

 

 

 

4.

 

 

 

 

 

 

 

 

Элементы, удовлетворяющие

-->

X

= [18 3 1 11; 8 10 11 3;

 

 

нескольким условиям.

 

>

9

14 6 1; 4

3 15 21]

 

 

 

Найти первые три элемента в матрице4×4,

X

=

 

 

 

 

 

 

 

 

большие 0 и меньшие, чем 10. Укажите два

 

18.

3.

 

1.

 

11.

 

 

 

выхода для возвращения строк и столбцов

 

8.

10.

 

11.

 

3.

 

 

 

индексов к элементам.

 

 

9.

14.

 

6.

 

1.

 

 

 

Первый элементом является X(2,1)=8.

 

4.

3.

 

15.

 

21.

 

 

 

 

 

-->

[row, col] = find(X > 0 & X < 10, 3)

 

 

col

=

 

 

 

 

 

 

 

 

 

 

1.

1.

1.

 

 

 

 

 

 

 

 

row

=

 

 

 

 

 

 

 

 

 

 

2.

3.

4.

 

 

 

 

 

 

Значения для ненулевых элементов и

-->

X

= [3 2 0; -5 0 7; 0 0 1]

 

 

их индексы.

 

X

=

 

 

 

 

 

 

 

 

Найти ненулевые элементы

в матрицу

 

3.

2.

0.

 

 

 

 

 

 

3×3и указать индексы строк, индексы столб-

-5.

0.

7.

 

 

 

 

 

 

цов.

 

 

0.

0.

1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-->

[row, col] = find(X)

 

 

 

 

 

col

=

 

 

 

 

 

 

 

 

 

 

1.

1.

2.

 

3.

3.

 

 

 

 

 

row

=

 

 

 

 

 

 

 

 

 

 

1.

2.

1.

 

2.

3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

229

Значения вектораmAсоответствующие

--> mA

= [1 2 3; 4 5 6; 7 8 9]

 

значениям логической матрицыmB.

mA =

 

 

 

 

 

 

1.

 

2.

3.

 

 

 

4.

 

5.

6.

 

 

 

7.

 

8.

9.

 

 

 

--> mB

= [%F %T %F; %T %F %T; %F %F %T]

 

 

mB

=

 

 

 

 

 

F T

F

 

 

 

 

T F

T

 

 

 

 

F F

T

 

 

 

 

--> mC

= mA(mB)

 

 

 

mC

=

 

 

 

 

 

4.

 

 

 

 

 

 

2.

 

 

 

 

 

 

6.

 

 

 

 

 

 

9.

 

 

 

 

 

 

--> find(mB)

 

 

 

 

ans

 

=

 

 

 

 

2.

 

4.

8.

9.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

230