Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Интерфейс и система консольных команд MATLAB.



Интерфейс и система консольных команд MATLAB.

Интерфейс MatLab состоит из панели инструментов, меню и четырёх окон — Command Window, Workspace, Command History, Current Directory. Current Directory (текущий каталог) — отображает список файлов и вложенных папок активного в данный момент каталога. Command History (история команд) — отображает содержимое буфера истории команд. Workspace (рабочее пространство) — отображает текущее состояние объектов, используемых в данный момент системой, а также позволяет вносить в них изменения с помощью редактора переменных (Variable Editor). Command Window — основное окно системы, которое содержит командную строку и рабочую область. Рабочая область предназначена для вывода результатов вычислений и справочной информации.

Командная строка (КС) позволяет в текстовом режиме вводить и редактировать команды системы, операторы, выражения и вызывать функции. КС начинается знаком «> > ». Исполнение команд происходит после их внесения в КС и нажатия на Enter.

Отметим:

1) запись математических выражений происходит в интуитивно понятной форме

2) результаты вычислений либо сохраняются в переменную по умолчанию ans (answer), либо в определенную пользователем переменную

(Математическое) выражение — последовательность символов, знаков операций, функций, констант и переменных.

Константа — предварительно определённое числовое или символьное значение, связанное с уникальным именем. Числа являются безымянными числовыми константами. Последовательности символов в кавычках являются символьными константами (или строками: 'i am a string! ').Другие виды констант принято называть системными переменными:

i или j — мнимая единица

pi — число пи

eps — погрешность операций с плавающей точкой (2^-52)

realmin — наименьшее число с плавающей точкой (2^-1022)

realmax — наибольшее число с плавающей точкой (2^1023)

inf — эквивалент бесконечности

ans — переменная, по умолчанию хранящая результат

последней операции в КС

NaN — результат некорректных операций (Not a number).

 

2. Основные типы данных MATLAB. Преобразования данных.

single — числовые массивы с числами одинарной точности;

double — числовые массивы с числами удвоенной точности;

char — строчные массивы с элементами-символами;

sparse — наследует свойства double, разреженные матрицы с элементами-числами удвоенной точности;

сеll — массивы ячеек; ячейки, в свою очередь, тоже могут быть массивами;

struct — массивы структур с полями, которые также могут содержать массивы;

function_handle — дескрипторы функций:

int32, uint32 — массивы 32-разрядных чисел со знаком и без знаков;

int16, uint16 — массивы 16-разрядных целых чисел со знаком и без знаков;

int8. uint8 — массивы 8-разрядных целых чисел со знаками и без знаков;

UserObject относится к типам данных определяемых пользователем.

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

- int2str(X) возвращает массив символов, содержащий символьные представления округленных до целых элементов массива Х.Аргумент X может быть скаляром, вектором или матрицей.

- mat2str(A, n) преобразует матрицу A в строку с точностью до n цифр после десятичной точки. Функция eval(str) осуществляет обратное преобразование.

-num2str(A, precision) выполняет преобразование массива A в строку символов с максимальной точностью, определенной аргументом precision. Аргумент precision определяет число разрядов в выходной строке.

- str2double(s) выполняет преобразование численной строки s (ASCII), в число с двойной точностью.

- str2num(s) выполняет преобразование численного массива символов в матрицу (массив размерности 2).

 

Арифметические и матричные вычисления.

Функция norm()

Для матриц

norm(X) — наибольшее из сингулярных чисел X, max(svd(X))

norm(X, 2) < => norm(X)

norm(X, 1) — наибольшая сумма по столбцам

= max(sum(abs(X))).

norm(X, inf) — наибольшая сумма по строкам

= max(sum(abs(X'))).

norm(X, 'fro') норма Фробениуса

= sqrt(sum(diag(X'*X))).

cond(a) — возвращает число обусловленности матрицы а как

отношение максимального сингулярного числа матрицы к

минимальному. Если результат близок к 1, матрица хорошо

обусловлена.

det(a) — определитель матрицы

rank(a) — ранг матрицы

inv(a) — обратная матрица

orth(a) — находит ортонормированный базис

для матрицы а

lu(a) — lu-разложение матрицы на нижне- и

верхнетреугольные формы

qr(a) — qr-разложение матрицы на унитарную

и верхнетреугольную матрицу

 

Матричные функции

expm(x) — матричная экспонента

logm(x) — матричный натуральный логарифм

sqrtm(x) — матричный квадратный корень

Внимание! Эти операции выполняются не поэлементно, а по

стандатрным правилам линейной алгебры, используя

разложения функций в степенные ряды

Арифметические операторы задают выполнение арифметических операций.

В MATLAB практически все операторы предназначены для выполнения опера_

ций над матрицами (табл. 3.1). Ввиду очевидности арифметических операторов

их подробное описание опущено.

Таблица 3.1. Арифметические операторы и функции MATLAB

 

Функция Название Оператор Синтаксис
plus Плюс + M1+M2
uplus Унарный плюс + +M
minus Минус - M1-M2
uminus Унарный - -M
mtimes Матричноеумножение * M1*M2
times Поэлементное умножение массивов .* A1*A2
mpower Возведение матрицы в степень ^ M1^x
power Поэлементное возведение массива в степень .^ A1^x
mldivide Обратное (справа налево) деление матриц \ M1\M2
mrdivide Деление матриц слева направо / M1/M2
ldivide Поэлементное деление массивов справа налево .\ ldivide Поэлементное деление массивов справа налево.\ A1.\A2
rdivide Поэлементное деление массивов слева направо ./ A1./A2
kron Тензорное умножение Кронекера kron kron(X, Y)

 

 

М-сценарии

Сценарии являются самым простым типом M-файла – у них нет входных и выходных аргументов. Они используются для автоматизации многократно выполняемых вычислений. Сценарии оперируют данными из рабочей области и могут генерировать новые данные для последующей обработки в этом же файле. Данные, которые используются в сценарии, сохраняются в рабочей области после завершения сценария и могут быть использованы для дальнейших вычислений.

Пример

Следующие операторы вычисляют радиус-вектор rho для различных тригонометрических функций от угла theta и строят последовательность графиков в полярных координатах.

Строка комментария

% M-file petals - сценарий построения лепесткового графика

theta = -pi: 0.01: pi;

rho(1, : ) = 2*sin(5*theta).^2;

rho(2, : ) = cos(10*theta).^3;

rho(3, : ) = sin(theta).^2;

rho(4, : ) = 5*cos(3.5*theta).^3;

for i = 1: 4

polar (theta, rho(i, : ))

pause

end

Вычисления

Команды графического вывода

Создайте М-файл petals.m, вводя указанные выше операторы. Этот файл является сценарием. Ввод команды petals.m в командной строке системы MATLAB вызывает выполнение операторов этого сценария.

После того, как сценарий отобразит первый график, нажмите клавишу Return, чтобы перейти к следующему графику. В сценарии отсутствуют входные и выходные аргументы; программа petals.m сама создаёт переменные, которые сохраняются в рабочей области системы MATLAB. Когда выполнение завершено, переменные (i, theta и rho) остаются в рабочей области. Для того чтобы увидеть этот список, следует воспользоваться командой whos.

М-функции

М-функции являются M-файлами, которые допускают наличие входных и выходных аргументов. Они работают с переменными в пределах собственной рабочей области, отличной от рабочей области системы MATLAB.

Пример

Функция average - это достаточно простой M-файл, который вычисляет среднее значение элементов вектора:

function y = average (x)

% AVERAGE Среднее значение элементов вектора.

% AVERAGE(X), где X - вектор. Вычисляет среднее значение элементов вектора.

% Если входной аргумент не является вектором, генерируется ошибка.

[m, n] = size(x);

if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))

error('Входной массив должен быть вектором’)

end

y =sum(x)/length(x); % Собственно вычисление

Попробуйте ввести эти команды в M-файл, именуемый average.m. Функция average допускает единственный входной и единственный выходной аргументы. Для того чтобы вызвать функцию average, надо ввести следующие операторы:

z = 1: 99;

average(z)

ans = 50

 

Ввод матриц

Вы можете вводить матрицы в MATLAB несколькими способами:

вводить полный список элементов

загружать матрицы из внешних файлов

генерировать матрицы, используя встроенные функции

создавать матрицы с помощью ваших собственных функций в М-файлах

А = [16 3 2 13; 5 10 11 8; 967 12; 4 15 14 1]

 

MATLAB отобразит матрицу, которую мы ввели,

A =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

Если мы ввели матрицу, то она автоматически запоминается средой MATLAB. И мы можем к ней легко обратиться как к А.

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

 

Обработка текстовых данных

Большинство команд и функций системы реализованы в виде текстовых m-файлов

Во всех языках программирования, и MATLAB здесь не исключение, большую роль играет обработка текстовых данных. Для этой цели в системе MATLAB предусмотрен тип данных char ( то есть " символ" ). Текстовые данные, в том числе и одиночный символ, должны заключаться с обеих сторон апострофами:

c1 = 'a'; c2='abcd'; c3 = 'Hello, World! ';

В результате таких присваиваний создаются переменные ( естественно, это массивы - в системе MATLAB всё является массивами ) типа char: текстовые данные в системе MATLAB являются вектор-строками типа char ( одна строка и несколько столбцов по числу содержащихся символов ). Каждый символ кодируется целым числом в соответствии со стандартной системой кодировки ASCII. Легко практически выяснить, какой код соответствует тому или иному символу. Следующий фрагмент

code = double( c1( 1 ) )

code= 97

показывает, что символу 'a' соответствует десятичное число 97. По отношению к массивам символов справедливы также все операции, которые мы ранее рассмотрели для случая массивов типа double. можно организовать поэлементное присваивание с помощью операции индексации:

c2( 1 )='a'; c2( 2 )='b'; c2( 3 )='c'; c2( 4 )='d';

или осуществить операцию конкатенации

c2 = [ 'abc', 'd' ]; c2 = [ c2, ' QWERTY' ];

Для записи данных в текстовый файл в заданном формате используется функция fprintf().

 

Вызов функции в mathLab

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

1. Формат заголовка М - функции:

function [ список выходных переменных ] = < имя функции> (< список входных переменных > ); % список выходных переменных может быть условным, т.е просто символ.

% Сохранение М-файла как М-функции должно быть с именем, которое указывается в поле заголовка М-функции.

Вызов функции в SciLab

Функции (макросы)в Scilab похожи на те, что мы уже встречали в других языках программирования.
Функции могут иметь аргумент, сами являться аргументом другой функции, быть членом списка, участвовать в операциях сравнения, вызываться рекурсивно.
Функция начинается со слова function и заканчивается словом endfunction. Обычно функции определены в текстовом файле, набранном во внешнем редакторе (например, в Windows в редактооре Wordpad или в " блокноте" ) и загружаются в Scilab с помощью команды exec(" filename" ). Можно создавать функции и внутри Scilab. Вместо двойных кавычек можно писать одинарные. То же самое можно выполнить с помощью меню File operation ( Load, getf, Exec ). В дальнейшем будет показано как загружать функции в файл " filename" и компилировать их.
Первая строка функции может быть следующей:
function[y1,..., yn]=my_name(x1,..., xk),
где yi - выходные переменные и xi - входные переменные. Подробно об использовании макросов смотри в главе " Программирование". Там же есть примеры их применения.

Интерфейс и система консольных команд MATLAB.

Интерфейс MatLab состоит из панели инструментов, меню и четырёх окон — Command Window, Workspace, Command History, Current Directory. Current Directory (текущий каталог) — отображает список файлов и вложенных папок активного в данный момент каталога. Command History (история команд) — отображает содержимое буфера истории команд. Workspace (рабочее пространство) — отображает текущее состояние объектов, используемых в данный момент системой, а также позволяет вносить в них изменения с помощью редактора переменных (Variable Editor). Command Window — основное окно системы, которое содержит командную строку и рабочую область. Рабочая область предназначена для вывода результатов вычислений и справочной информации.

Командная строка (КС) позволяет в текстовом режиме вводить и редактировать команды системы, операторы, выражения и вызывать функции. КС начинается знаком «> > ». Исполнение команд происходит после их внесения в КС и нажатия на Enter.

Отметим:

1) запись математических выражений происходит в интуитивно понятной форме

2) результаты вычислений либо сохраняются в переменную по умолчанию ans (answer), либо в определенную пользователем переменную

(Математическое) выражение — последовательность символов, знаков операций, функций, констант и переменных.

Константа — предварительно определённое числовое или символьное значение, связанное с уникальным именем. Числа являются безымянными числовыми константами. Последовательности символов в кавычках являются символьными константами (или строками: 'i am a string! ').Другие виды констант принято называть системными переменными:

i или j — мнимая единица

pi — число пи

eps — погрешность операций с плавающей точкой (2^-52)

realmin — наименьшее число с плавающей точкой (2^-1022)

realmax — наибольшее число с плавающей точкой (2^1023)

inf — эквивалент бесконечности

ans — переменная, по умолчанию хранящая результат

последней операции в КС

NaN — результат некорректных операций (Not a number).

 

2. Основные типы данных MATLAB. Преобразования данных.

single — числовые массивы с числами одинарной точности;

double — числовые массивы с числами удвоенной точности;

char — строчные массивы с элементами-символами;

sparse — наследует свойства double, разреженные матрицы с элементами-числами удвоенной точности;

сеll — массивы ячеек; ячейки, в свою очередь, тоже могут быть массивами;

struct — массивы структур с полями, которые также могут содержать массивы;

function_handle — дескрипторы функций:

int32, uint32 — массивы 32-разрядных чисел со знаком и без знаков;

int16, uint16 — массивы 16-разрядных целых чисел со знаком и без знаков;

int8. uint8 — массивы 8-разрядных целых чисел со знаками и без знаков;

UserObject относится к типам данных определяемых пользователем.

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

- int2str(X) возвращает массив символов, содержащий символьные представления округленных до целых элементов массива Х.Аргумент X может быть скаляром, вектором или матрицей.

- mat2str(A, n) преобразует матрицу A в строку с точностью до n цифр после десятичной точки. Функция eval(str) осуществляет обратное преобразование.

-num2str(A, precision) выполняет преобразование массива A в строку символов с максимальной точностью, определенной аргументом precision. Аргумент precision определяет число разрядов в выходной строке.

- str2double(s) выполняет преобразование численной строки s (ASCII), в число с двойной точностью.

- str2num(s) выполняет преобразование численного массива символов в матрицу (массив размерности 2).

 


Поделиться:



Последнее изменение этой страницы: 2017-03-17; Просмотров: 1936; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.052 с.)
Главная | Случайная страница | Обратная связь