Занятие_1_in english.ppt
- Количество слайдов: 40
1. Constants and variables Переменные и константы в MATLAB могут быть в основном: векторами-столбцами векторами-строками двухмерными матрицами многомерными матрицами Многие библиотечные векторные функции обычно ожидают в качестве входных параметров именно векторы-столбцы! Далее рассмотрим, как создавать переменные/константы
1. Constants and variables the creation of a column vector : a = [ 10 ; 20 ; 30 ]; the creating of a row vector: b = [ 10 20 30 ]; или b = [ 10 , 20 , 30 ]; 10 a = 20 30 b = 10 20 30 the creation of two-dimensional matrix: 1 2 3 c = [ 1 2 3 ; 4 5 6 ; 7 8 9 ]; или c= 4 5 6 7 8 9 c = [ 1 2 3; … 4 5 6; … 7 8 9 ];
1. Constants and variables empty matrix: e = [ ]; row vector ( : - colon ) s = [ 1 : 10 ]; или s = [ 1 : 10 ]; e= s = 1 2 3 4 5 6 7 8 9 10 column vector ( : ) w = [ 1 : -0. 1 : 0. 5 ]; w = 1 0. 9 0. 8 0. 7 0. 6 0. 5
1. Constants and variables matrix from the matrices : a = [ 1 2 3 ]; a= 1 2 3 b = [ 4 5 6 ]; b= 4 5 6 c = [ a b ]; c= 1 2 3 4 5 6 d = [ a ; b ]; 1 2 3 d= 4 5 6
1. Constants and variables using of ‘ operator (transponding) in matrices creation: a = [ 1 2 3 ]; a= 1 2 3 b = a’; или b = [ 1 2 3 ]’; 1 b= 2 3 c = [ 1 2 ; 3 4 ; 5 6 ]; 1 2 c= 3 4 5 6 d = c’; 1 3 5 d= 2 4 6
Task 1. Create following variables by using previous commands in command window: a= 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 -1. 5 -1. 0 -0. 5 x = 0. 0 0. 5 1. 5 2. 0 1 2 3 4 5 6 7 y= 1 2 3 4 5 6 7
1. Constants and variables Using special functions to creation of matrices and vectors: a= 0 0 0 0 0 b = ones( 3 , 1 ); b= 1 1 1 c = eye( 3 ); 1 0 0 c= 0 1 0 0 0 1 a = zeros( 2 , 5 );
1. Constants and variables Using special functions to creation of matrices and vectors: d = [ 1 ; 2 ; 3 ]; 1 d= 2 3 D = diag( d ); 1 0 0 D= 0 2 0 0 0 3 f = diag( D ); 1 f = 2 3
1. Constants and variables Using special functions to creation of matrices and vectors: Uniform distribution of random numbers {0. . 1} r 1 = rand( 2 , 3 ); 0. 76 0. 12 0. 91 r 1 = 0. 59 0. 37 0. 39 r 2 = rand( 3 ); 0. 99 0. 13 0. 75 r 2 = 0. 11 0. 64 0. 00 0. 46 0. 91 0. 32 Normal distribution of random numbers {-inf. . +inf} Expected value<x> = 0 Dispersion sx = 1 r 3 = randn( 1 , 5 ); r 3 = -0. 43 -1. 66 0. 12 -0. 68 2. 14 r 4 = randn( 2 ); 0. 56 -1. 26 r 4 = 0. 12 0. 18
1. Constants and variables Using special functions to creation of matrices and vectors: Replication of matrix: a = [ 1 2 ]; a= 1 2 b = repmat( a, 3 , 2 ); 1 2 b= 1 2 1 2
Task 1. Create following variables by using previous functions: 1 0 a= 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 1 1 1 c= 1 1 1 2 2 2 3 3 3 4 4 4
1. Constants and variables Selection of elements or matrices is made by ( ) operator: A ( ROW , COL ) a=[1234; … 5678; … 2222; … 3 4 5 3 ]; 1 5 a= 2 3 2 6 2 4 3 7 2 5 4 8 2 3 x = a( 2 , 3 ); 1 a= 5 2 3 2 6 2 4 3 7 2 5 4 8 2 3 x= 7 y = a( 4 , 3 ); 1 a= 5 2 3 2 6 2 4 3 7 2 5 4 8 2 3 y= 5
1. Постоянные и переменные (обращение к элементам) Selection of elements or matrices is made by ( ) operator: A ( ROW , COL ) i = [ 1 2 ]; j = [ 2 4 ]; z = a( i , j ); 1 a= 5 2 3 2 6 2 4 3 7 2 5 4 8 2 3 z= w = a( 1, 1: 4 ); 1 a= 5 2 3 2 6 2 4 3 7 2 5 4 8 2 3 w= 1 2 3 4 v = a( : , 2 ); 1 a= 5 2 3 2 6 2 4 3 7 2 5 4 8 2 3 2 4 6 8 2 v= 6 2 4 : (colon) operator - is used to select all possible range
1. Постоянные и переменные (обращение к элементам) Selection of elements or matrices is made by ( ) operator: A ( ROW , COL ) t = a( 3 , 2: end ); 1 a= 5 2 3 2 6 2 4 3 7 2 5 4 8 2 3 t= 2 2 2 p = a( 2: end , : ); 1 a= 5 2 3 2 6 2 4 3 7 2 5 4 8 2 3 5 6 7 8 p= 2 2 3 4 5 3 End operator – is used to select maximum index of the range
1. Постоянные и переменные (обращение к элементам) Selection of elements or matrices is made by ( ) operator: A ( ROW , COL ) After filling nonexistent elements of matrix, missing elements will be created and filled by zero value a( 4 , 5 ) = 9; a= 1 2 3 4 before 1 a= 3 0 0 2 4 0 0 after 0 0 0 9
1. Постоянные и переменные (обращение к элементам) Обращение к отдельным элементам или частям матриц производится с помощью оператора ( ): A ( ROW , COL ) Если оператор ( ) указывает на область и области присваивается скалярное значение, данное скалярное значение заполнит всю область: a( 1: 2 , 1: 2 ) = 0; 1 5 a= 2 3 2 6 2 4 до 3 7 2 5 4 8 2 3 0 0 a= 2 3 0 0 2 4 3 7 2 5 после 4 8 2 3
1. Постоянные и переменные (обращение к элементам) Обращение к отдельным элементам или частям матриц производится с помощью оператора ( ): A ( ROW , COL ) Можно “вставлять” значения одной матрицы внутрь другой: a( 1: 2 , 2: 3 ) = b; 1 a= 5 2 3 b= 2 6 2 4 3 7 2 5 4 8 2 3 1 a= 5 2 3 7 5 2 4 7 5 2 5 7 7 5 5 до после 4 8 2 3
1. Постоянные и переменные (обращение к элементам) Обращение к отдельным элементам или частям матриц производится с помощью оператора ( ): A ( ROW , COL ) Для удаления частей матрицы используется пустая матрица: [ ] a( 2 , : ) = [ ]; 1 a= 5 2 3 2 6 2 4 до 3 7 2 5 4 8 2 3 1 a= 5 2 3 2 6 2 4 3 7 2 5 4 8 2 3 a= 1 2 3 4 2 2 3 4 5 3 после
ЗАДАНИЕ 1. Создайте следующие переменные, вводя необходимые команды в командном окне: 1 3 a= 0 0 0 2 4 0 0 0 0 0 1 0 0 2 0 0 3 2. С помощью единственной команды удалите 2, 3, 7 столбцы матрицы a 3. Создайте матрицу b, содержащую 2 и 3 строки “урезанной” матрицы а 4. Удалите переменную а
1. Постоянные и переменные (удаление) Для удаления переменных используют функцию clear : >> clear x y z; % удалили переменные x, y, z >> clear(‘a’, ’b’); % удалили переменные a, b >> clear all; % удалили все переменные >> clear(‘all’); % удалили все переменные >> clear global; % удалили все глобальные переменные >> clear(‘global’); % удалили все глобальные переменные
1. Постоянные и переменные (строки) Строки (char) в MATLAB представляют собой массивы символов: str = ‘это массив строк’; b = str(1 : 3); c = str(5 : 10); % b = ‘это’ % c = ‘массив’ d = [ b c ]; % d = ‘этомассив’
1. Постоянные и переменные (структуры) Структуры (structure) в MATLAB представляют собой объединения разнородных элементов: a. name = ‘вася’; a. m = 100; a. matr = [10; 20; 30]; или: a = struct( ‘name’ , ’вася’ , ‘m’ , 100 , ‘matr’, [ 10 ; 20 ; 30 ] ); name: ‘вася’ a= m: 100 matr: 10 20 30
1. Постоянные и переменные (ячейки) Ячейки (cell) в MATLAB представляют собой массивы любых, даже разнородных элементов: a { 1 , 1 } = ‘петя’; a { 1 , 2 } = pi; a { 2 , 1 } = [ 1 2 3 ; 4 5 6 ]; a { 2 , 2 } = int 8(10); ‘петя’ a= pi 1 2 3 4 5 6 10
1. Постоянные и переменные (глобальные) В MATLAB присутствуют также глобальные переменные. Особенность этих переменных в том, что они могут быть видны вне функций. % главный скрипт global G; G = 10; %%% % функция myfunc [y] = myfunc(x); global G; % внутри функции MATLAB теперь “знает”, что y=G*x; % G - глобальная переменная, и нужно искать её % “снаружи”
1. Постоянные и переменные (комплексные числа) В MATLAB имеются также комплексные числа (переменные): x = 2 + 3*j x = 2 + 3 j y = 7 – 4*i y = 7 – 4 i z = 5*i z = 5 i Для комплексных чисел также определены соответствующие математические операции и функции.
ЗАДАНИЕ 1. Создайте переменные следующих типов (с любыми значениями): d – тип double ui - тип uint 16 s – структура с 2 мя - 3 мя полями c - тип массив ячеек (cell) размером 2 на 3 z – комплексное число 2. Определите, к какому типу относится константа pi 3. Определите, к какому типу относится результат выражения 1<2
Язык программирования MATLAB 2. Операторы и операции
2. Операторы и операции (арифметические и матричные) Операторы: + сложение матриц одинаковых размеров A = [ 1 2 ; 3 4 ]; B = [ 2 2 ; 4 4 ]; C = A + B; - смена знака всех элементов матрицы на противоположный. A = [ 1 2 ; 3 4 ]; B = - A; - вычитание матриц одинаковых размеров A = [ 1 2 ; 3 4 ]; B = [ 2 2 ; 4 4 ]; C = A - B;
2. Операторы и операции (арифметические и матричные) Операторы: * матричное умножение (по правилам матричного умножения) матриц соответствующих размеров A = [ 1 2 ; 3 4 ]; B = [ 2 2 2 ; 4 4 4 ]; C = A * B; 2 x 2 2 x 3 2 x 2 * 2 x 3 >> 2 x 3
2. Операторы и операции (арифметические и матричные) Операторы: / матричное деление z = x / y; % число = число / число A = B / s; % матрица = матрица / число (поэлементно) A/B равносильно A * inv(B) (только для квадратных матриц!) Здесь inv(B) – функция нахождения обратной матрицы / применяется для решения матричных уравнений левое матричное деление AB равносильно inv(A) * B (только для квадратных матриц!) применяется для решения матричных уравнений
2. Операторы и операции (арифметические и матричные) Операторы: . * поэлементное умножение массивов одинаковых размеров. C = A. * B равносильно C( i , j ) = A( i , j ) * B( i , j ) . / поэлементное деление массивов одинаковых размеров. C = A. / B равносильно C( i , j ) = A( i , j ) / B( i , j ) . поэлементное левое деление массивов одинаковых размеров. C = A. B равносильно C( i , j ) = B( i , j ) / A( i , j )
2. Операторы и операции (арифметические и матричные) Операторы: ^ возведение скаляра в степень: x = y ^ 2. 5 вычисление степени квадратной матрицы: B = A ^ 3 равносильно B = A * A . ^ поэлементное возведение матрицы в степени, являющиеся элементами другой матрицы тех же размеров: C = A. ^ B равносильно С( i , j ) = A( i , j ) ^ B( i , j )
2. Операторы и операции (арифметические и матричные) Операторы: ‘ Нахождение сопряжённой матрицы B = A’ . ’ Нахождение транспонированной матрицы B = A. ’ ВНИМАНИЕ: для вещественных матриц операция поиска сопряжённой матрицы совпадает с операцией транспонирования. Поэтому часто используют A‘ а не A. ’
2. Операторы и операции (размеры векторов) Для определения размеров векторов используют функцию length: >> a = [ 1 2 3 4 5 ]; % вектор-строка >> length(a) ans= 5 >> b = [ 1 ; 2 ; 3 ; 4 ; 5 ]; % вектор-столбец >> length(a) ans= 5
2. Операторы и операции (размеры матриц) Для определения размеров векторов и матриц используют функцию size: >> A = [ 1 2 3 ; 4 5 6 ]; % матрица 2 x 3 >> size( A ) ans= 2 3 % вектор, содержащий столько элементов % сколько размерностей у переменной % rows cols >> size( A , 1 ) ans= 2 % число строк (rows) >> size( A , 2 ) ans= 3 % число столбцов (cols)
2. Операторы и операции (логические) Операции отношения x> y x >= y x< y x <= y x == y x ~= y больше равно меньше равно не равно Логические операторы и функции (здесь a и b – логические выражения или переменные) a & b a && b a | b a||b ~a and(a, b) or(a, b) xor(a, b) not(a) И быстрое И ИЛИ быстрое ИЛИ ИСКЛЮЧАЮЩЕЕ ИЛИ ОТРИЦАНИЕ
2. Операторы и операции (побитовые) Побитовые операции определены только для неотрицательных целых чисел (uint 32, uint 16, uint 8) с = bitand(a, b) с = bitor(a, b) с = bitxor(a, b) с = bitshift(a, shift, ressize) c = bitset(a, bit, 1) c = bitset(a, bit, 0) c = bitget(a, bit)
2. Операторы и операции (приоритеты) Приоритеты математических и логических операторов (в порядке убывания приоритета): 1. выражения в скобках ( ) 2. функции пользователя, библиотек 3. функции and, or, not, xor 4. отрицание ~ 5. транспонирование, возведение в степень (в т. ч. поэлементное), унарные + и – 6. умножение и деление (в т. ч. поэлементное), 7. сложение и вычитание 8. операции отношения >, >=, <, <=, ==, ~= 9. &, |, &&, || (в ранних версиях имели одинаковый приоритет!) ПРИМЕЧАНИЕ: Если сомневаетесь – используйте скобки ( ) – точно не ошибётесь!
ЗАДАНИЕ 1. Создайте следующие матрицы: A= 1 1 2 3 4 5 B= 4 3 2. С помощью оператора найдите решение уравнения: A*X = B
ЗАДАНИЕ (продолжение) 2. С помощью оператора найдите решение уравнения: A*X = B ПОДСКАЗКА: A*X = B A A*X = A B X=AB - делим слева на A - то, что требовалось ДЛЯ ПРОВЕРКИ: A*X - должно получиться B
Занятие_1_in english.ppt