Занятие_1.ppt
- Количество слайдов: 68
Занятие 1 Введение в MATLAB
Содержание занятия Введение в MATLAB 1. Назначение и возможности пакета MATLAB 2. Структура пакета MATLAB 3. Знакомство с интерфейсом MATLAB 4. Знакомство с программами MATLAB Язык программирования MATLAB 1. Постоянные и переменные 2. Арифметические и матричные операторы 3. Логические операторы и операции 4. Побитовые операции 5. Управляющие конструкции 6. Матрично-векторные функции 7. M-файлы и M-функции
Рекомендуемая литература 1. И. Ануфриев и др. “MATLAB 7”. СПб. : БХВ-Петербург, 2005. 2. Basics of MATLAB and beyond. (на англ. языке) 3. MATLAB Help. (на англ. языке) 4. Начало работы с Mat. Lab. (перевод на рус. Getting Started) 5. В. Дьяконов. “MATLAB 6: Учебный курс”. СПб. : Питер, 2001. 6. А. М. Половко, П. Н. Бутусов. “MATLAB для студента”. СПб. : БХВ-Петербург, 2005 и многие другие.
Введение в MATLAB
1. Назначение и возможности пакета MATLAB (Matrix Laboratory) Создан более 20 лет назад фирмой Math. Works. Первоначально разрабатывался как средство доступа к библиотекам программ LINEPACK и EISPACK, предназначенных для матричных вычислений. MATLAB = универсальный инструмент решения различных задач, связанных с обработкой данных, вычислениями и математическим моделированием. Спектр проблем, решаемых в MATLAB: Матричный анализ; обработка сигналов и изображений; задачи математической физики; оптимизационные задачи; финансовые задачи; обработка и визуализация данных; работа с картографическими изображениями; нейронные сети; нечёткая логика и многое другое.
ЗАДАНИЕ 1. Запустите MATLAB 2. Далее, по ходу занятия следуйте указаниям преподавателя, а также принимайте меры по скорейшему знакомству с интерфейсом MATLAB
2. Структура пакета MATLAB Язык программирования Среда GUIDE (создание графич. интерфейса пользователя) Библиотеки функций Средства импорта и экспорта данных Средства визуализации данных Средства символьных вычислений (на базе пакета Maple) Profiler (средство профилирования, отладки и оптимизации) Simulink = Среда интерактивного визуального моделирования динамических систем Toolboxes (пакеты расширения) = около 40 специализированных наборов инструментов и библиотек функций Справочная система = описание MATLAB, примеры, демонстрации Средства интеграции с другими программами = интерфейсы взаимодействия с такими программами, как Microsoft Office, языками программирования C, Fortran или Java
3. Знакомство с интерфейсом MATLAB Внешний вид пользовательского интерфейса MATLAB
3. Знакомство с интерфейсом MATLAB Пользовательский интерфейс MATLAB: 1. Главное Меню: Задание рабочей директории (поле ввода Current Directory) Запуск средств и надстроек MATLAB (в том числе Simulink и Profiler) Команды работы с файлами программ и с файлами данных 2. Command Window (окно ввода команд и вывода результатов) 3. Command History (история команд, введённых пользователем) 4. Current Directory (отображение содержимого рабочей директории) 5. Workspace (отображение всех существующих переменных) 6. Launch Pad (окно быстрого запуска средств и надстроек MATLAB) 7. Simulink … (Запускается почти как отдельное приложение) 8. Profiler … (Средство отладки, профилирования и оптимизации)
4. Знакомство с программами MATLAB Зачастую программа MATLAB включает в себя множество файлов, которые находятся обычно в одной директории. Эту директорию при выполнении программы назначают Текущей (или Рабочей) – Current Directory. Файлы программы подразделяются на три основных типа: M-скрипты (процедуры без входных и выходных параметров); M-функции (файлы, содержащие определения и тела функций – могут иметь входные и/или выходные параметры); Файлы данных (MAT-файлы, TXT-файлы, WAV-файлы и пр. ) MATLAB является интерпретатором, т. е. выполнение программы происходит строка за строкой исходных кодов (M-файлов и Mфункций). В ходе выполнения интерпретатор “переходит” от команды к команде, из файла в файл. Все переменные создаются в памяти MATLAB – Рабочем пространстве – Workspace. Любая программа MATLAB или пользователь имеют полный доступ к содержимому Workspace.
4. Знакомство с программами MATLAB Программировать в MATLAB можно и непосредственно вводя все команды в окне команд – Command Window. Все введённые пользователем команды запоминаются в Истории команд – Command History. Существуют: встроенные команды, операторы и функции библиотечные команды и функции пользовательские команды и функции
ЗАДАНИЕ 1. Введите в окне команд MATLAB’а следующий набор команд % То, что идёт в строке после знака является комментарием ! % Вводить комментарии в окне команд не требуется. % Мои первые команды в MATLAB: >> clc; % команда очистки окна команд >> clear all; % удалить все переменные из Workspace >> close all; % закрыть все графические окна, если они были >> a=2; % создали переменную a (загляните в Workspace) >> b=2; % создали переменную b (загляните в Workspace) >> c=a*b; % выполнили умножение и создали переменную с >> c % вывели на экран текущее значение c >> disp(c); % то же самое >> d=a+b; d=2*d; disp(d); % несколько команд в одной строке
4. Знакомство с программами MATLAB Обычно в окне команд вводят не всю программу, а лишь команды, необходимые для отладки, проверки значений, простейших вычислений. Также существуют некоторые вспомогательные команды, которые обычно не включают в программы, например: >> ver; % вывод версии MATLAB и всех установленных надстроек >> quit; % выход из среды MATLAB >> help sin; % краткая справка по функции sin
ЗАДАНИЕ (task_1) 1. Следуя указаниям преподавателя задайте значение Рабочей директории (Current Directory) 2. Следуя указаниям преподавателя создайте новый m-файл, содержащий следующий код % моя первая программа в MATLAB clc; clear all; close all; x=0: 0. 1: 2*pi; % создание вектора xi = [ 0 0. 1 0. 2 0. 3 … 6. 28 ] y=sin(x); % создание вектора yi=sin(xi) plot(x, y); % отображение графика yi=sin(xi) на заданном % наборе значений
ЗАДАНИЕ (task_1) 3. Сохраните полученный m-файл под именем my 1 st. m (в Рабочей директории!) 4. Выполните эту программу посредством редактора (кнопка Run) 5. Выполните эту программу посредством окна команд. Для этого в окне команд введите: >> my 1 st; % запускаем полученный m-скрипт
4. Знакомство с программами MATLAB ПРИМЕЧАНИЕ: имена программ, функций и переменных должны подчиняться определённым правилам: не начинаться с цифры, не содержать пробелов и др. служебных символов, не содержать русских символов). ПРИМЕЧАНИЕ: Перенос строки внутри выражения в MATLAB выполняется с помощью специального символа переноса строки: … (три точки подряд). Например: x=1+2+3… +4+5;
Язык программирования MATLAB 1. Постоянные и переменные
1. Постоянные и переменные (var и const) MATLAB чувствителен к регистру символов. Поэтому A и a он воспринимает как два разных объекта. В MATLAB нет разницы между переменными и константами пользователя! Во избежание путаницы принято негласное соглашение использовать: для имён переменных – нижний регистр для имён констант – верхний регистр Например: a, var, speed, ball_diametr, msize – имена переменных G, STEP, EARTH_MASS, OOPS – имена констант
1. Постоянные и переменные (var и const) В MATLAB существуют встроенные функции, константы и переменные. Пользователь сам создаёт какие-то свои константы, функции и переменные. Для того, чтобы случайно не переопределить уже существующий объект, можно проверить, существует ли он. Для этого используют функцию exist(‘name’); на входе: имя объекта (строка) на выходе: 0 – если объекта с таким именем не существует не 0 – если объект с таким именем существует (Более подробно см. Help MATLAB’а)
ЗАДАНИЕ 1. Определите, используя функцию exist, существуют ли в среде MATLAB объекты с именами: pi, j, i, sin, cos, plot, cool, hello, true, false >> exist(‘sin’) % Если команда не завершается точкой с запятой ans = % результат её будет выведен в командном окне 5 % ans – переменная по умолчанию для помещения % результата последней введённой команды 2. Если объект существует, получите для него краткую справку с помощью команды help >> help sin
1. Постоянные и переменные (типы) Переменные MATLAB могут быть следующих типов: Числа: double (вещественные, 8 байт) single (вещественные, 4 байта) int 32 (целое со знаком, 4 байта) uint 32 (целое без знака, 4 байта) int 16 (целое со знаком, 2 байта) uint 16 (целое без знака, 2 байта) int 8 (целое со знаком, 1 байт) uint 8 (целое без знака, 1 байт) Символы (строки): char (символ, 1 байт) Логические переменные: logical (true/false, 1 байт) Ячейки: cell Структуры: structure Другие (указатели на функции, Java-объекты, классы пользователя)
1. Постоянные и переменные (типы) По умолчанию все числа имеют тип double Для того, чтобы изменить/задать тип переменной явно, используют следующие функции: a=double(a); b=single(3. 14); c=uint 32(50); d=int 8(-10); e=char(52); % кодировка ASCII для диапазона 0… 127 f=logical(1);
1. Постоянные и переменные (типы) При преобразовании типов используется “принцип насыщения сверху и снизу” Например: >> uint 8(-10) ans= 0 >> uint 8(1000) ans= 255
1. Постоянные и переменные (типы) В MATLAB имеется несколько ограничений на использование тех или иных типов данных. Например, результат выражения, содержащего переменные типов double и single, будет иметь тип single (Начиная с MATLAB 7!): double + double >>> double single + single >>> single double + single >>> single ПРИМЕЧАНИЕ: В MATLAB до версии 7 для чисел single арифметические операции не определены! При работе с целыми числами арифметические операции запрещены (для беззнаковых целых разрешены побитовые операции). bitand(uint 8, uint 8) >>> uint 8 При этом: bitand(uint 8, uint 16) >>> ошибка
1. Постоянные и переменные (типы) Обычно работают с типами double, logical Целые числа и числа single используют для экономии памяти промежуточном хранении данных Далее, если не оговорено специально, мы будем работать только с типами double и logical!
1. Постоянные и переменные (типы) Задание вещественных чисел: x=3. 14; % 3. 14 y=1 e 3; y=1 E 3; % 1*10^3 = 1000 z=1 e-3; z=1 E-3; % 1*10^-3 = 0. 001 w=10 e 3; w=10 E 3; % 10*10^3 = 10000 d=5. 5 e 2; d=5. 5 E 2; % 5. 5*10^2 = 550
1. Постоянные и переменные (типы) Предопределённые константы в MATLAB: pi % 3. 1415926… i или j % мнимая единица inf или Inf % бесконечность (возникает при делении на 0) nan или Na. N % неопределённость (возникает при делении 0 на 0) Для того, чтобы определить, имеет ли данная переменная значение Inf или Na. N, можно использовать isnan(x) isinf(x) isfinite(x) % возвращает логическую 1, если x=Na. N % возвращает логическую 1, если x=Inf % возвращает логическую 1, если x=конечное число
1. Постоянные и переменные (типы) Для того, чтобы определить, к какому типу относится та или иная переменная, можно воспользоваться функциями группы is* isnumeric(x) isreal(x) isempty(x) ischar(x) islogical(x) и др. % возвращают логическую 1, если переменная % соответствующего типа, или логический 0, % если она имеет другой тип isa(x, ’class_name’) isa(x, ’logical’) isa(x, ’char’) isa(x, ’numeric’) isa(x, ’double’) isa(x, ’int 8’) isa(x, ’struct’) isa(x, ’cell’) и т. д. Кроме того, для определения типа переменной можно использовать функцию class: >> class(x) ans= uint 32 %строковая константа
1. Постоянные и переменные (создание) Переменные и константы в MATLAB могут быть в основном: векторами-столбцами векторами-строками двухмерными матрицами многомерными матрицами Многие библиотечные векторные функции обычно ожидают в качестве входных параметров именно векторы-столбцы! Далее рассмотрим, как создавать переменные/константы
1. Постоянные и переменные (создание) создание вектора-столбца: a = [ 10 ; 20 ; 30 ]; создание вектора-строки: b = [ 10 20 30 ]; или b = [ 10 , 20 , 30 ]; создание двухмерной матрицы: c = [ 1 2 3 ; 4 5 6 ; 7 8 9 ]; или c = [ 1 2 3; … 4 5 6; … 7 8 9 ]; 10 a = 20 30 b = 10 20 30 1 2 3 c= 4 5 6 7 8 9
1. Постоянные и переменные (создание) создание пустой матрицы: e = [ ]; e= создание вектора-строки (оператор : ) s = [ 1 : 10 ]; или s = 1 2 3 4 5 6 7 8 9 10 s = [ 1 : 10 ]; создание вектора-строки (оператор : ) w = [ 1 : -0. 1 : 0. 5 ]; w = 1 0. 9 0. 8 0. 7 0. 6 0. 5
1. Постоянные и переменные (создание) создание матрицы из матриц: 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. Постоянные и переменные (создание) использование оператора ‘ (транспонирование) при создании матриц и векторов: 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
ЗАДАНИЕ 1. Создайте следующие переменные, вводя необходимые команды в командном окне: 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. Постоянные и переменные (создание) использование специальных функций для создания матриц и векторов: 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. Постоянные и переменные (создание) использование специальных функций для создания матриц и векторов: 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. Постоянные и переменные (создание) использование специальных функций для создания матриц и векторов: равномерное распределение случайных чисел {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 нормальное распределение случайных чисел {-inf. . +inf} <x> = 0 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. Постоянные и переменные (создание) использование специальных функций для создания матриц и векторов: функция репликации: a = [ 1 2 ]; a= 1 2 b = repmat( a, 3 , 2 ); 1 2 b= 1 2 1 2
ЗАДАНИЕ 1. Создайте следующие переменные, вводя необходимые команды в командном окне: 1 0 a= 0 0 2 0 0 0 3 0 0 0 4 0 0 0 b= 0 1 0 0 0 0 5 1 1 1 c= 1 1 1 2 2 2 3 3 3 4 4 4
1. Постоянные и переменные (обращение к элементам) Обращение к отдельным элементам или частям матриц производится с помощью оператора ( ): 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. Постоянные и переменные (обращение к элементам) Обращение к отдельным элементам или частям матриц производится с помощью оператора ( ): 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 оператор : (двоеточие) весь возможный диапазон значений индекса
1. Постоянные и переменные (обращение к элементам) Обращение к отдельным элементам или частям матриц производится с помощью оператора ( ): 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 максимальное значение возможного диапазона индекса
1. Постоянные и переменные (обращение к элементам) Обращение к отдельным элементам или частям матриц производится с помощью оператора ( ): A ( ROW , COL ) При заполнении несуществующих элементов матриц, недостающие элементы будут созданы и заполнены 0 a( 4 , 5 ) = 9; a= 1 2 3 4 до 1 a= 3 0 0 2 4 0 0 0 после 0 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.ppt