Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Интерфейс и система консольных команд MATLAB.Стр 1 из 7Следующая ⇒
Интерфейс и система консольных команд 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
М-сценарии Сценарии являются самым простым типом 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 похожи на те, что мы уже встречали в других языках программирования. Интерфейс и система консольных команд 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; Просмотров: 1988; Нарушение авторского права страницы