Переменные в среде MATLAB. Элементы М-языка MATLAB. Программы MATLAB

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

Обозначения системных переменных MATLAB

Комплексные числа

В системе MATLAB комплексные числа, тате же, как и вещественные, имеют тип double. Поэтому нет необходимости в отдельной маркировке, отмечающей работу с комплексными числами. Запись производится следующим образом: 3+7i; -7.1+0.831Е+2*i; 5-3j . Из примера видно, что для обозначения мнимой единицы можно использовать одну из букв: i или j. По умолчанию MATLAB использует букву i.

Ниже приведен пример вычисления корня квадратного из -1

>> b=sqrt(a)

Для комплексных чисел можно применять те же функции, что и для вещественных, кроме очевидных случаев, когда у функции не может быть комплексного аргумента. Например, функция rem (x,y) вычисляет остаток от деления x на у, поэтому использование в качестве ее аргумента комплексного числа приведет к ошибке:

>> a=2+3*i;

>> rem(a,3)

Error using ==> rem

Arguments must be real.

Наряду с этим, существует также ряд функций, применяемых только к комплексным переменным.

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

Например:

>> abs(2+3i)

>> conj(2+3i)

2.0000 - 3.0000i

>> isreal(x)

В последнем примере функция isreal возвратила число 0, т.к. переменная x не является действительной.

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

При длительной сессии программы MATLAB может быть нелегко запомнить имена и типы всех переменных, которые вы задали.
Вы можете ввести команду whos , чтобы просмотреть общий список имен и
типов, или классов, ваших заданных на текущий момент переменных. Но перед тем
как сделать это, произведите присвоения а = pi, b = "pi ", с = ("pi"), а затем
введите whos . Ниже показан вывод результатов сессии программы MATLAB,
отображенной в этой главе.

Переменным A, X, Y, Z, а и d были присвоены числовые значения и они
обозначены как «двойной массив». Это означает, что они являются массивами чисел с
двойной точностью; в данном случае массивы a и d имеют размер 1х1, то есть,
являются скалярами. Столбец Bytes (Байты) показывает, сколько компьютерной
памяти занимает каждая переменная. Переменная ans также является числовой,
поскольку последний вывод был вектором 1Х2. Переменная b является строкой,
обозначенной как char array (Символьный массив), так как переменные с, u, v, w,
х, у являются символьными. Наконец, мы видим также два массива обработки
функции и два массива встроенных объектов, соответствующие парам
анонимных функций и встроенных функций.
Команда whos показывает сведения обо всех заданных переменных, но эта
команда не показывает значения переменных. Чтобы увидеть значение переменной,
достаточно просто ввести название переменной и нажать клавишу Fnterl.

При вводе командам программы MATLAB требуются определенные классы
данных, и очень важно знать, какой именно класс данных требуется данной команде;
справочный текст по команде обычно содержит класс или классы, которые
требуются при вводе. Неверный класс ввода обычно приводит к появлению
сообщения об ошибке или к неожиданному результату. Например, введите команду sin("pi "), чтобы увидеть, к какому результату может привести добавление строки в
функцию, которая не приемлет строк.
Чтобы очистить все заданные Matlab переменные, введите clear или clear all.
Вы можете также ввести, например, clear x у, чтобы очистить только
переменные х и у.

Puc. 2.2. Рабочий стол с окном Workspace (Рабочее пространство)

Обычно следует очищать переменные перед началом новых вычислений.
В противном случае значения из предыдущих вычислений могут случайно
попасть в новые. Окно Workspace (Рабочее пространство) предоставляет
графическую альтернативу команде whos. Вы можете активировать это окно, щелкнув
мышью на вкладке Workspace (Рабочее пространство) в окне Current Directory (Текущий каталог), или введя команду workspace в командной строке. На Рис. 2.2 показан
Рабочий стол, в котором окна Command Window (Командное окно) и Workspace
(Рабочее пространство) содержат ту же самую информацию, которая отображена
выше.

Поэтому из выше всего сказанного можно сделать вывод, что вам необходимо просмотреть много дополнительной информации и альтернатив!

Как и в других языках программирования, в MATLAB существует возможность работы с переменными. Переменные - это именованные объекты, хранящие какие-либо данные. Переменные могут быть числовыми, векторными или символьными, что зависит от типа хранящихся в них данных. Переменная имеет имя, называемое идентификатором . Данные могут менять свои значения, идентификатор остается прежним.

Выбирая имя для переменной, руководствуйтесь следующими правилами.

■ Имя переменной может включать любое количество символов, однако запоминаются и идентифицируются только первые 63 символа (это число как максимально возможное число символов в имени переменной возвращает функция name lengthmax).

■ Имя переменной всегда должно начинаться с буквы и может содержать любые комбинации букв, цифр и символов подчеркивания (_).

■ Не допускается использовать в именах переменных пробелы и специальные символы (такие как+, -,*,/).

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

■ В именах переменных различаются строчные и прописные буквы (т.е. Abс и аВс - это разные имена).

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

isvarname имя_переменной

где имя_переменной - это имя переменной, в правильности которого вы хотите удостовериться. Данная функция возвращает значение 1, если имя является допустимым, и 0 в противном случае. Например, имя 12_abc_3 8 является некорректным, поскольку начинается с цифры, поэтому данная функция возвращает значение 0.

>> isvarname 12_abc_3 8

В MATLAB существует несколько имен переменных, являющихся зарезервированными. Переменные с такими именами называются системными. Они задаются после загрузки системы и могут использоваться в математических выражениях. Системные переменные могут быть переопределены, т.е. при необходимости им можно присвоить другие значения.

Ниже перечислены основные системные переменные MATLAB.

■ i , j - мнимая единица (корень квадратный из -1), используемая для задания мнимой части комплексных чисел.

■ pi - число π (π = 3.141592653589793).

■ eps - погрешность операций над числами с плавающей точкой, т.е. интервал между числом 1.0 и следующим ближайшим числом с плавающей запятой (равен 2.2204е-16,или 2 -52).

■ ans - результат последней операции без знака присваивания.

■ inf - обозначение машинной бесконечности.

■ NaN - сокращение от слов Not a Number (не число), принятое для обозначения неопределенного результата (например, 0/0 или Inf /Inf).

■ realmin - минимальное по модулю вещественное число (2 .22 51е-308, или 2 -1022).

■ realmax - максимальное по модулю вещественное число (1.7977е+3 08, или 2 1023).

В MATLAB, в отличие от прочих языков программирования, типы переменных заранее не декларируются. Достаточно присвоить переменной значение определенного типа. Например, чтобы присвоить переменной а значение 5, введите в командной строке выражение а =5 (в качестве оператора присваивания применяется знак равенства) и нажмите клавишу , после чего программа сразу же выдаст значение данной переменной.

>> а =5

Как видите, в этом случае программе MATLAB нет необходимости назначать для представления результата переменную ans, поскольку задана переменная а.

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

Действие точки с запятой распространяется не только на операции присваивания. Если задать этот символ в конце любого выражения, введенного в командную строку, то результат его вычисления не будет сразу же отображен на экране. Вместо этого появится символ приглашения ко вводу следующей команды (»).Переменной можно присвоить число, арифметическое выражение, строку символов (заключенную в апострофы) либо символьное выражение.

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

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

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

· clear a b c – уничтожение семейства переменных (аргументы команды clear следуют сразу после имени команды и разделяются пробелами).

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

Конец работы -

Эта тема принадлежит разделу:

Пециальные символы и их назначение

Язык общения с matlab.. символы и операторы языка.. операторы языка это символы операций над данными называемыми операндами в matlab применяются все общепринятые..

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Основы программирования в MatLab

Наместников С.М. / Сборник лекций: УлГТУ, Ульяновск. - 2011

Введение

Глава 1. Структура программы. Основные математические операции и типы данных

1.1. Структура программы пакета MatLab

1.2. Простые переменные и основные типы данных в MatLab

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

1.4. Основные математические функции MatLab

1.5. Векторы и матрицы в MatLab

1.6. Операции над матрицами и векторами

1.7. Структуры в MatLab

1.8. Ячейки в MatLab

Глава 2. Условные операторы и циклы в MatLab

2.1. Условный оператор if

2.2. Условный оператор switch

2.3. Оператор цикла while

2.4. Оператор цикла for

Глава 3. Работа с графиками в MatLab

3.1. Функция plot

3.2. Оформление графиков

3.3. Отображение трехмерных графиков

3.4. Отображение растровых изображений

Глава 4. Программирование функций в MatLab

4.1. Порядок определения и вызова функций

4.2. Область видимости переменных

Глава 5. Работа с файлами в MatLab

5.1. Функции save и load

5.2. Функции fwrite и fread

5.3. Функции fscanf и fprintf

5.4. Функции imread и imwrite

Введение

Среди множества существующих математических пакетов, таких как Mathematica, MathCad и др., система MatLab занимает лидирующее место благодаря удобному встроенному языку программирования для реализации самых разнообразных математических алгоритмов и задач математического моделирования. Кроме того, данный пакет имеет дополнительно инструмент визуального моделирования Simulink, позволяющий строить и исследовать математические модели, не прибегая к их программированию.

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

Глава 1. Структура программы. Основные математические операции и типы данных

Первым шагом на пути создания математических алгоритмов является изучение структуры программы и набора математических операций, доступных языку программирования. В частности, в данной главе будут рассмотрены математические операции и функции пакета MatLab, связанные с обработкой как скалярных, так и матричных переменных.



Структура программы пакета MatLab

Как правило, каждая программа в MatLab представляет собой функцию и начинается с ключевого слова function, за которым через пробел следует ее название. Например,

function Lab1
a = 5;
b = 2;
c = a*b;

Данная программа заключена в функции с именем Lab1 и вычисляет произведение двух переменных а и b. При сохранении программы в m-файл рекомендуется указывать имя файла, совпадающее с именем функции, т.е. в данном случае – Lab1.

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

function Lab1
a = 5;
b = 2;
c = a*b;
out_c(c); % вызов функции out_c()

function out_c(arg_c) % определение функции out_c()
disp(arg_c);

Обратите внимание, что функцию out_c() можно вызывать в основной программе до ее определения. Это особенность языка MatLab, позволяющая не беспокоиться программисту о последовательности задания функций. В приведенном примере функция out_c() имеет один входной параметр с именем arg_c, который выводится на экран (в командное окно MatLab) с помощью встроенной функции disp(). В итоге, при выполнении приведенной программы в командном окне MatLab будет отображено значение переменной c.

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

1-й файл (Lab1.m)

При выполнении функции Lab1 система MatLab вызовет функцию square из файла square.m. Это будет сделано автоматически, т.к. встроенные функции языка MatLab определены также и вызываются из файлов, имена которых, как правило, соответствуют именам вызываемых функций. Обратите также внимание на то, что функция square() не только принимает два аргумента a и b, но и возвращает их произведение с помощью переменной res. Представленный синтаксис следует использовать всякий раз, когда требуется возвратить результат вычислений основной программе. В четвертой главе данного пособия более подробно изложены конструкции вызова функций для реализации разнообразных алгоритмов.

Простые переменные и основные типы данных в MatLab

Создание программы, как правило, начинается с определения переменных и способа представления данных. Следовательно, чтобы правильно организовать описание данных программы, необходимо знать как задавать переменные в MatLab и какие виды переменных возможны.

Самый простой и наиболее распространенный тип данных – это число. В MatLab число хранится в переменной, которая имеет некоторое уникальное имя, например,

задает переменную с именем a и присваивает ей значение 5. По умолчанию переменная а является вещественной (тип double), т.е. может принимать дробные значения, например,

задает значение переменной а равное -7,8. Изменить тип переменной можно, указав тип присваиваемого числа с помощью соответствующего ключевого слова, например,

выполнит присваивание числа 5 как целочисленного 16-битового значения. В результате выполнения такой операции тип переменной a будет соответствовать int16.

Типы данных, доступные в MatLab, представлены в табл. 1.1.

Таблица 1.1. Основные типы данных в MatLab

По умолчанию используется тип double, который имеет наибольшую точность представления вещественного числа и является потому универсальным типом. Однако, если необходимо экономить память ЭВМ, то можно указывать самостоятельно желаемый тип.

Последнее, что следует знать при задании переменных – это правило определения их имен. В MatLab имена переменных могут задаваться только латинскими буквами, цифрами и символом ‘_’. Причем, первый символ в имени должен соответствовать букве латинского алфавита. Также следует отметить, что имена

arg = 1;
Arg = 2;
ARG = 3;

это три разных имени, т.е. три разные переменные со значениями 1, 2 и 3 соответственно. Данный пример показывает, что MatLab различает регистр в именах переменных.

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