Материал: MATLAB 5. Анализ технических систем. Слепокуров Ю.С

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ceil

округление аргумента в сторону

round

округление аргумента до ближайшего целого значения

mod

остаток от деления

rem

―знаковый‖ остаток от деления

sign

знак аргумента

1.6. Ввод и преобразование матричных переменных

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

Например, если задано Х = 1, то это значит, что Х есть вектор с единственным элементом, имеющим значение 1. Если надо задать вектор из трех элементов, то их значения надо перечислить в квадратных скобках, разделяя пробелами:

N = [1 2 3].

Задание матрицы требует указания различных строк. Для различения строк используется знак ― ; ‖ (точка с запятой):

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

 

Матрицу можно ввести и следующим образом:

F = [1

2

3

4

5

6

7

8

9].

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

Для указания отдельного элемента вектора или матрицы используются выражения вида V(i) или M(i, j).

Матрицы

можно

расширять, используя матрицы малых размеров как

элементы матрицы больших размеров:

R = [10 11 12];

 

 

Y = [F; R]

 

 

Y =

 

 

1

2

3

4

5

6

7

8

9

10

11

12

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

» Y(:,:,2)=[14 15 16;17 18 19;20 21 22;23 24 25]

Y(:,:,1) =

 

1

2

3

4

5

6

7

8

9

10

11

12

Y(:,:,2) =

 

14

15

16

17

18

19

20

21

22

23

24

25

Для удаления строк, столбцов или вообще размерности массива необходимо присвоить выбранному элементу значение пустого вектора [ ]. Например, для удаления первой страницы трехмерного массива Y можно воспользоваться командой

»Y(:,:,1)=[]

Y=

14 15 16

17 18 19

20 21 22

23 24 25

Возможно задание векторов и матриц с комплексными переменными.

Помимо поэлементного ввода векторов и матриц возможна генерация векторов и матриц специального типа. Например, вектор с целочисленными элементами можно задать в виде:

X = 1: 5;.

Знак двоеточие указывает, что элементы вектора будут принимать значения 1, 2, 3, 4, 5.

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

X = 0 : 0.25 : 2;.

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

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

А = [1 2 3; 4 5 6];

B = A(:)

B =

1

2

 

3

 

 

 

 

 

 

4

 

 

 

 

 

 

5

 

 

 

 

 

 

6

 

 

 

 

 

A(:) = 10 : 15

 

 

 

 

A =

 

 

 

 

 

 

10

12

14

 

 

 

 

11

13

15

 

 

 

 

 

В этих примерах создан новый вектор В и изменена матрица А.

 

Следующие примеры иллюстрируют операции вырезки из матрицы:

А =[1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15; 16 17 18 19 20]

A =

 

 

 

 

 

 

 

 

1

2

3

4

5

 

 

6

7

8

9

10

 

 

11

12

13

14

15

 

 

16

17

18

19

20

A (1 : 3, 3)

 

 

 

 

ans =

 

 

 

 

 

 

3

 

 

 

 

 

 

8

 

 

 

 

 

 

13

 

 

 

 

 

A(2 : 4, 2 : 5)

 

 

 

 

ans =

 

 

 

 

 

 

 

7

8

9

10

 

 

 

12

13

14

15

 

 

 

17

18

19

20

 

Транспонирование вектора означает, что строка элементов становится столбцом:

V = [1 2 3] V =

1 2 3

V‘ ans =

1

2

3

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

ones (n1, n2, … , nn) создание массива с единичными элементами; zeros (n1, n2, … , nn) создание массива с нулевыми элементами;

Хорошим примером на применение матричных операций является решение системы линейных уравнений. Пусть требуется решить систему

уравнений:

 

 

 

 

X

+

2Y

=

11

2X

+

3Y

=

18

Введем матрицу коэффициентов А и вектор правой части системы

уравнений В:

 

 

 

А = [1 2; 2

3]

 

 

 

ans =

 

 

 

 

12

23

B = [11; 18] ans =

11

18

A\B ans =

3

4.

1.7. Управление последовательностью выполнения операторов

Существует 4 основных оператора управления последовательностью исполнения инструкций:

оператор условия if в сочетании с операторами else и elseif выполняет группу инструкций в соответствии с некоторыми логическими условиями;

оператор переключения switch в сочетании с операторами case и otherwise выполняет различные группы инструкций в зависимости от значения некоторого логического условия;

оператор условия while выполняет группу инструкций неопределенное число раз в соответствии с некоторым логическим условием завершения;

оператор цикла for выполняет группу инструкции фиксированное число раз.

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

if …else … elseif … end

 

 

Оператор условия

 

 

 

 

 

 

 

 

Синтаксис:

 

 

 

 

 

if

логическое

 

if

логическое

if

логическое

выражение

 

выражение

выражение

 

 

инструкции

 

инструкции

инструкции

 

 

end

 

 

else

 

elseif

логическое

 

 

 

 

 

выражение

 

 

 

инструкции

инструкции

 

 

 

 

 

end

 

else

 

 

 

 

 

 

 

инструкции

 

 

 

 

 

 

 

end

 

 

Оператор условия if ... end вычисляет некоторое логическое выражение и выполняет соответствующую группу инструкций в зависимости от значения этого выражения. Если логическое выражение истинно, то MATLAB выполнит все инструкции между if и end, а затем продолжит выполнение программы в строке после end. Если условие ложно, то MATLAB пропустит все утверждения между if и end и продолжит выполнение в строке после end.

Если логическое условие включает переменную, не являющуюся скаляром, то утверждение будет истинным, если все элементы отличны от нуля.

Операторы if ... else ... end и if ... elseif ... end создают дополнительные ветвления внутри тела оператора if:

оператор else не содержит логического условия. Инструкции, связанные с ним, выполняются, если предшествующий оператор if (и, возможно, elseif) ложен;

оператор elseif содержит логическое условие, которое вычисляется, если предшествующий оператор if (и, возможно, elseif) ложен. Инструкции, связанные с оператором elseif, выполняются, если соответствующее логическое условие истинно.

Оператор elseif может многократно использоваться внутри оператора условия if.

switch … case … otherwise .. end

Оператор переключения

Синтаксис:

switch <выражение> case <значение1>

инструкции % выполняются когда <выражение> = <значение1> case <значение2>

инструкции % выполняются когда <выражение> = <значение2>

Источник: https://studfile.net/preview/16565812/