Уничтожение определений переменных



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

clear – уничтожение определений всех переменных;

clear x – уничтожение определения переменной х;

clear a,b,c – уничтожение определений нескольких переменных.

Уничтоженная переменная становится неопределенной и ее использование невозможно, всякие попытки обращения к ней будут сопровождаться сообщениями об ошибке.

 

4.5. Функции

Функции преобразуют одни данные в другие. Функции возвращают значения в ответ на обращение к ним с указанием списка входных параметров – аргументов:

- численное,

- символьное (формулу),

- вектор или матрицу.

В MATLAB различают следующие виды функций

- встроенные – внутренние ( sin(x), exp(y) ),

- вешние – свои определения в m-файлах (sh(x) ),

- m – функциями (функциями пользователя)

Встроенная функция (или просто функция) – это объект со стандартным именем, предназначенный для выполнения действий с параметрами (аргументами), заключенными в круглые скобки

Записываются функции строчными буквами в виде:

<f_name>(список_параметров)

Обращение к функции:

>> y=cos(x);

4.6. Двойственность операторов, команд и функций в MATLAB

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

Список операторов можно получить командой >> help ops

В MATLAB определены две группы арифметических операторов.

1. Операции выполняется по правилам матричной алгебры, когда результат зависит от порядка следования операндов.

2. Из операндов компоненты извлекаются по очереди и осуществляются операции по правилам линейной алгебры. Для этих операций в оператор добавляется символ точка (.) перед символом операции.

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

Применение оператора :

Оператор : - позволяет формировать упорядоченные числовые последовательности

Для создания списка используется запись:

<начальное_значение>:<шаг>:<конечное_значение>

>> 1 : 5                             % шаг =1

ans =

1 2     3 4 5

>> i= 0 : 2 : 10                   % шаг =2 

ans =

0 2 4 6 8 10

>> V=[ 0 : pi/2 : 2*pi ];      % шаг = pi/2

>> V

V =                                        

    0 1.5708 3.1416 4.7124 6.2832

 

Двойственность операторов и функций: многие операторы имеют свои аналоги в виде функций.

Список элементарных функций можно получить командой >> help elfun,

А список специальных функций командой                         >> help specfun.

В системе MATLAB определены указанные ниже функции. Функция, примененная к массиву, возвращает значения для каждого элемента массива. Входной массив допускает комплексные значения. Углы в большинстве функций в радианах.

 

4.7 Арифметические матричные операторы и функции MATLAB

В MATLAB для выполнения операций можно использовать операторы или функции. Для одних операций определены только операторы, для других только функции, для третьих можно использовать и операторы и функции.

В MATLAB предусмотрены три категории операторов:

- Арифметические. Используются с численными данными.

- Условные. Используются для сравнения.

- Логические. Осуществляют операции над данными логического типа

 

4.7.1. Арифметические матричные операторы и функции MATLAB

 

Оператор Функция Описание
A + B plus(A,B) Сложение. A, B должны быть одинакового размера.
+ A uplus(A) Унарный плюс.
A – B minus(A,B) Вычитание. A, B должны быть одинакового размера.
– A uminus(A) Унарный минус.
A * B mtimes(A,B) Матричное умножение.
A .* B times(A,B) Поэлементное умножение массивов.
A / B mrdivide(A,B) Деление матриц слева на право. A делится на B. Тот же результат дает A*inv(B).
A ./ B rdivide(A,B) Поэлементное деление массивов слева на право. (A/B)
A \ B mldivide(A,B) Обратное деление матриц справа на лево. B делится на A.. Тот же результат дает inv(A)*B.
A .\ B ldivide(A,B) Поэлементное деление массивов справа на лево. (B/A)
A ^ B mpower(A,B) Возведение матрицы в степень. A возводится в степень B.
A .^ B power(A,B) Поэлементное возведение массива в степень.
A ′ ctranspose(A) Транспонирование матрицы.
A . ′ transpose(A) Транспонирование массива.
A : H : B A : B colon(A,H,B) colon(A,B) Список от A до B с шагом H. Список от A до B с шагом 1.

Примеры:

>> A=[1 2 3];    % Задание вектора A

>> B=[4 5 6];         % Задание вектора B

>> B–A             % Вычитание двух векторов

ans =

3 3 3

>> minus(B, A)

ans =

3 3 3

>> A.^2            % Поэлементное возведение в степень вектора А

ans =

1 4 9

>> A.\B

ans =

4.0000 2.5000 2.0000

При вычислении:

- Для ввода исходных данных используется символ >>

- Данные вводятся с клавиатуры в редактор

- Для блокировки вывода результата вычислений выражения после него надо установить знак ; (точка с запятой)

- Если не указана переменная со значением результата вычислений, то система именует ее ans

- Знаком присвоения является знак =

- Встроенные функции записываются строчными латинскими буквами и их аргументы указываются в круглых скобках

- Диалог происходит в силе «задал вопрос - получил ответ».

 

4.7.2.  Условные операторы 

Для сравнения двух величин и выполнения операций отношения служат операторы отношения

Оператор Функция Описание
x==y eq(x,y) x Равно y
x~=y ne(x,y) x Не равно y
х<y lt(x,y) x Меньше чем y
x>y gt(x,y) x Больше чем y
x<=y le(x,y) x Меньше или равно y
x>=y ge(x,y) x Больше или равно y

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

>> M=[-1 0; 1 3];              % Задание матрицы

M =

-1 0

1 3

>> M>=0                         % Сравнение элементов матрицы М

ans =

0 1

1 1

4.7.3.  Логические операторы 

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

Оператор Функция Описание
x&y and(x,y) И (AND)
x|y or(x,y) Логическое ИЛИ (OR)
x~y not(x,y) Логическое НЕ (NOT)
x xor y xor(x,y) Операция «Исключающее ИЛИ», (сложение по модулю 2)

 

>> A=[1,1,1];

>> D=[1,0,0];

>> and(A,D)

ans =

1 0 0

>> A|D

ans =

1 1 1

4.8 Встроенные функции

Со списком функций можно ознакомиться, выполнив команды:

help elfun         элементарные функции,

help specfun     специальные функции.

Встроенные функции хранятся в откомпилированном ядре системы MATLAB и выполняются предельно быстро.

Тригонометрические функции

 Функция Описание
sin(X) Синус
cos (X) Косинус
tan(X) Тангенс
cot (X) Котангенс
sec(X) Секанс
csc(X) Косеканс

Обратные тригонометрические функции.

Функция Описание
asin(X) asind (X) Обратный синус. То же самое, но результат в градусах.
acos (X) acosd (X) Обратный косинус. То же самое, но результат в градусах.
atan(X) atand(X) Обратный тангенс. Результат в квадрантах 1 и 4. То же самое, но результат в градусах
acot (X) acotd (X) Обратный котангенс. То же самое, но результат в градусах.
asec(X) asecd(X) Обратный секанс. То же самое, но результат в градусах.
acsc(X) acscd(X) Обратный косеканс. То же самое, но результат в градусах.

Гиперболические функции.

 Функция Описание
sinh(X) Синус гиперболический.
cosh (X) Косинус гиперболический.
tanh(X) Тангенс гиперболический.
coth (X) Котангенс гиперболический.
sech(X) Секанс гиперболический.
csch(X) Косеканс гиперболический.

Обратные гиперболические функции.

Функция Описание
asinh(X) Обратный синус гиперболический.
acosh (X) Обратный косинус гиперболический.
atanh(X) Обратный тангенс гиперболический.
acoth (X) Обратный котангенс гиперболический.
asech(X) Обратный секанс гиперболический.
acsch(X) Обратный косеканс гиперболический.

Степени, корни, логарифмы

Функция Описание
pow2(X) 2 в степени X.
realpow(X,Y) X в степени Y.
sqrt(X) Квадратный корень из Х..
realsqrt(X) Квадратный корень из неотрицат. вещественного Х..
nthroot (X) Вещественный n-ый корень из Х.
exp(X) Экспонента от Х.
expm1(X) Экспонента от Х минус 1.
log(X) Натуральный логарифм от Х.
reallog(X) Натуральный логарифм от неотрицат. вещественного Х.
log2(X) Логарифм от Х по основанию 2.
log10(X) Логарифм от Х по основанию 10.

Функции комплексных чисел

Функция Описание
abs(X) Абсолютное значение Х
angle(Z) Угол Z в радианах
complex(a,b) Возвращает комплексное число (a -  вещественная часть, b – мнимая часть)
conj(X) Сопряженное комплексное число.

Статистические функции

Функция Описание
sum(X) Возвращает сумму элементов вектора Х
max(X) Возвращает максимальное значение элементов вектора Х
min(X) Возвращает минимальное значение элементов вектора Х
mean(X) Возвращает среднее ариф. значение элементов вектора Х
sort(X) Сортировка элементов X.
sortrows(X) Сортировка строк X.

Округления и остатки

Функция Описание
fix(X) Целая часть Х. Округление с усечением дробной части числа >> [fix(1.7) fix(-1.7)] ans = 1 -1
floor(X) Ближайшее к Х целое в сторону меньшую Округление с усечением дробной части положительного числа и округление до ближайшего целого отрицательного числа >> [floor(1.7) floor(-1.7)] ans = 1 -2
ceil(X) Ближайшее к Х целое в сторону большую Округление с усечением дробной части отрицательного числа и округление до ближайшего целого положительного числа >> [ceil(1.7) ceil(-1.7)] ans = 2 -1
round(X) Округление Х до ближайшего целого. >> [round(1.7) round(-1.7)] ans = 2 -2
mod(X,Y) Остаток от целочисленного деления X на Y. >> mod(5,2) ans = 1
rem(X,Y) Остаток от деления X на Y. >> rem(5,2) ans = 1

 

 

Функции преобразования систем счисления

 

Функция Описание
dec2hex(X) Преобразование десятичного целого в шестнадцатеричное >> dec2hex(27) ans = 1B
dec2bin (X) Преобразование десятичного целого в двоичное >> dec2bin (6) ans = 110
bin2dec(X) Преобразование двоичного целого в десятичное >> bin2dec('110') ans = 6 Двоичное число указывается в апострофах
hex2dec (X) Преобразование шестнадцатеричного целого в десятичное >> hex2dec ('1B') ans = 27 Шестнадцатеричное число указывается в апострофах

 

Функции побитовых преобразований для неотрицательных целых чисел дают доступ к битам двоичного представления чисел.

Функция Описание
bitand(A,B) Побитовая операция «И», логическое умножение.
bitor(A,B) Побитовая операция «ИЛИ», логическое сложение.
bitcmp(A,N) Побитовая операция «НЕ» для A, инверсия. N – Длина ответа.
bitxor(A,B) Побитовая операция «Исключающее ИЛИ», или сложение по модулю 2.

 

Примеры:

>> a=14;

>> b=5;

Десятичное представление Двоичное представление
>> bitand(a,b) ans = 4 >> dec2bin(bitand(a,b)) ans = 100
>> bitor(a,b) ans = 15 >> dec2bin(bitor(a,b)) ans = 1111
>> bitxor(a,b) ans = 11 >> dec2bin(bitxor(a,b)) ans = 1011

 

4.9   Функции пользователя

Несмотря на большое количество встроенных операторов, и функций (около 1000), пользователю всегда может понадобиться та или иная функция, отсутствующая в ядре.

Пример 1:

  X=0 : 0.2 : 3;     % задание вектора значений

Z=-abs(sin(2*X)); % задание функции пользователя Z

Y=cos(X.^3);      % задание функции пользователя Y

 

Пример 2: применение функции inline, аргументом которой в апострофах задается выражение функции:

>> Z=inline('sin(x)^2+cos(y)^2')

Z =

Inline function:

Z(x,y) = sin(x)^2+cos(y)^2

 

Пример 3: задание функции в виде m-файла:

После сохранения функции под именем Z в командной строке можно вывести листинг созданной функции, а также вызвав функцию подсчитать возвращаемый результат:

 

 


Пример 4: задание handle-функции, в которой могут использоваться все объекты структурного программирования. Для этого используется единичный символ @.

>> fhs=@sin % функция, вычисляющая значение sinуса

fhs =

@sin

 Для вычисления такой функции служит функция

Feval(fhandle, a1, a2,…), где а1, а2…список аргументов. Например,

>> feval(fhs,1) % функция, вычисляющая значение sinуса = 1

ans =

0.8415

К ней можно обращаться и строить, например, график.

>> plot(feval(fhs,0:0.1:2*pi))

 

4.10. Выражения

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

Иначе, они задают то, что должно быть вычислено в численном или символьном виде.

Строятся на основе чисел, констант, переменных, операторов, функций, спецзнаков.

Различают следующие типы выражений:

· арифметические,

· логические,

· символьные.

 Примеры арифметических выражений (имеющие арифметические операторы):

>> 2.3*sin(x);

>> 4+exp(3)/5;

>> sqrt(y)/2;

>> sin(pi/2);

Примеры логических выражений (операции отношения и логические операции):

>> (i==j) & (a+b) > sqrt(c)

Примеры символьных выражений (символьные константы, переменные, функции…)

>> X=char(‘abs’, ‘absolute’, ‘кот’, ‘кошка’)

4.11 Приоритетность выполнения операций в математических выражениях

1. круглые скобки,

2. операции транспонирования и возведения в степень ^,

3. унарные + и -, логическое отрицание,

4. арифметические операции умножения и деления  * и /,

5. арифметические операции сложения и вычитания + и -,

6. оператор сечения массива,

7. операторы отношения (<, <=, >, >=, ==, ~=),

8. логические операторы «И» (&) и «ИЛИ» ( | ).

4.12 Сообщения об ошибках и исправление ошибок

При ошибочных действиях, ошибочном написании математических выражений или команд MATLAB диагностирует вводимые команды и выражения и выдает сообщение об ошибке или предупреждения символами красного цвета.

Например:

>> sqr(2)

??? Undefined function or method 'sqr'. % Функция 'sqr' не определена.

С помощью редактора и клавиш управления курсором ↓, ↑ , ← , → отыскивается нужная строка, подводится курсор к ошибочному месту и происходит корректировка введенной команды или выражения.

>> sqrt(2)

 

ans =

1.4142

4.13 Текстовые комментарии

Текстовые пояснения в программу вводятся, как комментарий. Он начинается с символа %, который располагается в первой позиции строки.

Комментарий – это текст!  В него символы операций не включаются. Например,

% ввод исходных данных

% вывод графиков

 Перенос строки в сессии

Если математическое выражение окажется слишком длинным, то его можно перенести на новую строку с использованием символов …   

                           a = 1 - 1 / 2 + 1 / 3 – 1 / 4 + 1 / 5

                                         – 1 / 6 + 1 / 7 – 1 / 8 + 1 / 9 – 1 / 10 ;        

4.14 Формирование векторов и матриц

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

1. Векторы вводятся в квадратных скобках, компоненты вектора разделяются пробелами. Например,

>> V=[1  2  4]                               % Задание вектора V

V =

1 2 4

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

>> V(2) = 5;       % Пере присвоение значения 2-го элемента вектора V

>> V

V =

1 5 4

>> V(3)

ans =

4

2. Матрицы вводятся в квадратных скобках, внутри которых размещаются векторы строк, разделенные знаком точка с запятой (;). Например,

>> M=[1  2  3; 4  5  6; 7  8 9]        % Задание матрицы M

M =

1 2 3

4 5 6

7 8 9

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

>> M(2,1)

ans =

4

4.15 Специальные символы

Оператор : - позволяет формировать упорядоченные числовые последовательности

Для создания списка используется запись:

<начальное_значение>:<шаг>:<конечное_значение>

>> 1 : 5                             % шаг =1

ans =

1 2 3 4 5

>> i= 0 : 2 : 10                   % шаг =2 

ans =

0 2 4 6 8 10

>> V=[ 0 : pi/2 : 2*pi ];             % шаг = pi/2

>> V

V =                                    

    0 1.5708 3.1416 4.7124 6.2832

V( : )             % записывает все элементы массива V в виде столбца

ans =

    0

1.5708

3.1416

4.7124

6.2832

Оператор : - формирование векторов и подматриц из векторов и матриц

Специальные символы и операторы

 

Оператор Описание
V(n) вывод n – го элемента вектора V
V(:) вывод вектора в столбец
V′ транспонирование вектора / матрицы
A(m,n) вывод m,n – го элемента матрицы A
A(m,:) вывод строки m из матрицы А.
A(:, n ) вывод столбца n из матрицы А
A(m,:) = [ ] удаление строки m из матрицы А
A(:,n) = [ ] удаление столбца n из матрицы А

M =

1 2 3

4 5 6

7 8 9

>> M(2,3)

ans =

6

>> M(2,:)          % выводит 2 строку

ans =

4 5 6

>> M(2,:)=[ ]     % удаляет 2-ю строку и формирует новую матрицу                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

M =

1 2 3

7 8 9

. . . продолжение строки в случае, если математическое выражение длинное и не размещается в одной строке.

 

4.16 Рабочая область памяти Workspace и команды who, whos, clear

 

В MAYLAB переменные текущей сессии сохраняются в рабочей области памяти Workspace (рабочее пространство). Рабочее окно содержит имена переменных (Name), значение или размер (Value) и максимальное и минимальные значения для массива данных:

 

Двойной щелчок по имени переменной (например, А) открывает окно редактирования этой переменной Variable Editor

                                                              

 

В котором можно произвести редактирование данных выбранной переменной

 

Список текущих переменных Workspace выводится по команде:

 

>> who

Your variables are:

A ans b 

 

Этот же список с дополнительными сведениями по команде:

 

>> whos

Name Size       Bytes Class    

 

A      2x3           48 double             

ans  1x1            8 double             

b      1x1            8   double

 

Полная очистка содержимого Workspace выполняется по команде:

 

>> clear

 

а удаление требуемых переменных по команде:

 

clear <имена переменных>

 

Например, для переменных А (массив 2x3 ) и b (скаляр 1x1) команда очистки области от них выглядит следующим образом:

>> clear(A,b)

 

 

4.17 Сохранение данных на диске и команды save, load

Для того, чтобы воспользоваться данными в другой сессии или в режиме программирования, данные текущей сессии можно сохранить на диске в файле с расширением mat по команде:

save <имя файла> <список переменных>

Например,

>> n=1:100; x=sin(0.5*pi.*n); y=cos(0.5*pi.*n);

>> save('nxy.mat', 'n', 'x', 'y');

Значения переменных n, x, y будет сохранено на диске в файле 'nxy.mat' в папке work.

По команде

load <имя файла>

выполняется обратная процедура – загрузка данных (mat-файла) с диска в рабочее пространство памяти Workspace

Например,

>> load ('nxy.mat')

 

4.18 Сохранение данных на диске в собственной папке

 

С целью систематизации сохранения лучше создать свою папку.

Создание своей папки производится в окне Current Folder (Directory)

 

 


Дата добавления: 2021-03-18; просмотров: 76; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!