Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_1_матлаб.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
177 Кб
Скачать
☆

Вычисления Особенности ввода команд и данных

При активизации пакета на экране появляется основное окно рабочей среды ML. Это окно содержит строку заголовка, строку главного меню, панель инструментов с кнопками для выполнения наиболее используемых операций. Слева расположено окно Current Folder, где можно установить текущую папку. В центре самое главное окно Command Window, где отображаются вводимые пользователем команды и отображаются результаты и сообщения об ошибках. Справа (расположение зависит от версии ML) окно Workspace (рабочее пространство) и окно Command History для просмотра и повторного вызова ранее введенных команд. В пособии « Решение задач в системе Матлаб» описано назначение этих окон.

Команды вводятся в окне Command Window в командной строке после приглашения системы >>. Для выполнения введенной команды надо нажать клавишу <Enter>. Причем, на экране сразу появляется результат вычислений. Для хранения выполненных команд предусмотрен кольцевой буфер. Для просмотра и выбора предыдущих команд используются клавиши управления: и . Все выполненные команды можно видеть и в окне Command History. Любую предыдущую команду можно вызвать для исполнения, дважды щелкнув по ее отображению в этом окне.

В ML строчные и прописные буквы различаются. Это надо учитывать при записи команд и задании имен переменным. Принято обозначать все вектора и матрицы прописными (большими) буквами, функции – строчными (маленькими).

Если команда при наборе не помещается в строку, то в конце строки ставятся три точки (…) без пробелов, затем нажимается <Enter> и дальше набор продолжается с новой строки.

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

Простейший способ работы в ML – это режим прямых вычислений (режим калькулятора). Команды выполняются сразу после их ввода, а результат выводится сразу после выполнения команды.

Например, вводим команду:

>> х=sin(0.5)

Нажимаем <Enter>

Получаем ответ:

х =

0.4794

Вводим команду:

>> 3^2-(5+4)/2+6*3

Нажимаем <Enter> и получаем ответ:

ans =

22.5000

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

Элементы данных в ml

Основной элемент данных в ML – матрица. Числа и векторы рассматриваются как вырожденные матрицы. Например, число – это матрица размером 1×1. Вектор – это матрица с одним столбцом или с одной строкой.

Все данные в ML интерпретируются как 2-мерные массивы (матрицы). Элементами массива могут быть целые, вещественные, комплексные числа, логические значения и символы.

В языках программирования основополагающим понятием является тип. Тип определяет: размер ячейки памяти, в которой размещается переменная, множество её возможных значений, допустимые операции и способ представления в памяти.

Основные типы данных в MatLab

double

вещественный, 64 бит

single

вещественный, 32 бит

int8

знаковый целочисленный, 8 бит

int16

знаковый целочисленный, 16 бит

int32

знаковый целочисленный, 32 бит

int64

знаковый целочисленный, 64 бит

uint8

беззнаковый целочисленный, 8 бит

uint16

беззнаковый целочисленный, 16 бит

uint32

беззнаковый целочисленный, 32 бит

uint64

беззнаковый целочисленный, 64 бит

А также Logical (логический, имеющий значения 0 и 1, означающих true и false), Char (символьный), Cell, Structure.

Все данные в системе являются массивами (и объединяются термином ARRAY). Все числовые типы данных (int8-int32, uint8-uint32, single, double) объединяются термином NUMERIC. Типы данных array и numeric являются виртуальными («кажущимися»), поскольку к ним нельзя отнести какие-либо переменные. Они служат для определения и комплектования некоторых типов данных.

Все числовые типы включают целые со знаком и без знака, а также числа в формате с плавающей точкой двойной точности (double) и одинарной точности (single). Большинство вычислений в системе Матлаб выполняется над вещественными типами double. Этот тип данных установлен по умолчанию. Каждое вещественное число такого типа занимает 8 байт. Комплексное число в этом формате занимает 16 байт. Тип single занимает 4 байта

Тип double имеет наибольшую точность представления вещественного числа и является универсальным типом.

Однако если необходимо экономить память компьютера, то можно указывать самостоятельно желаемый тип. Например, x=int16(25). Такое данное будет занимать 2 байта, y=int64(25) - 8 байт, z=int8(25) – 1байт.

Используя функции преобразования типов, нужно иметь в виду некоторые особенности. Одни из них определяются просто выходом операндов арифметических операций за границы. Другие специфичны для сочетания целочисленных и вещественных данных в MATLAB. Так, например, если один операнд относится к целым числам, а второй к вещественным, то MATLAB будет производить вычисления с двойной точностью, но результат будет преобразован к типу целых чисел. Если операндов более чем два, то результаты, возвращаемые MATLAB, могут быть неверными. Наконец, в любой арифметической операции не допускаются операнды различных целочисленных типов. Целочисленная арифметика может быть очень удобна при решении некоторых задач. Например, при обработке растровых изображений каждый пиксель кодируется набором целых чисел, определяющих три цвета в RGB палитре. Целые числа всегда экономят память и часто позволяют добиться большей скорости вычислений. Однако, учитывая приведенные выше особенности, следует в традиционных вычислениях крайне осторожно пользоваться целочисленными типами данных.

Максимальное и минимальное значения для вещественного типа можно получить, воспользовавшись функциями:

например, по командам realmax(‘<тип>’) и realmin(‘<тип>’) , будет выведено

>>realmax('single')

ans =

3.4028e+038

>> realmin('single')

ans =

1.1755e-038

>> realmin('double')

ans =

2.2251e-308

>> realmax('double')

Для целого типа:

ans =

1.7977e+308

>> intmax('int8')

ans =

127

>> intmin('int8')

ans =

-128

>> intmin('int64')

ans =

-9223372036854775808

>> intmax('int64')

ans =

9223372036854775807