Progress-servis55.ru

Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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-файле, а вызывать ее в другом, то это можно реализовать следующим образом.

function Lab1 a = 5; b = 2; c = square(a,b); % вызов функции square() out_c(c); % вызов функции out_c() function out_c(arg_c) % определение функции out_c() disp(arg_c);
2-й файл (square.m)
function res=square(a, b) res = a*b;

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

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

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

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

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

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

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

Читать еще:  Задание функции в matlab

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

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

doubleвещественный, 64 бит
singleвещественный, 32 бит
int8знаковый целочисленный, 8 бит
int16знаковый целочисленный, 16 бит
int32знаковый целочисленный, 32 бит
int64знаковый целочисленный, 64 бит
uint8беззнаковый целочисленный, 8 бит
uint16беззнаковый целочисленный, 16 бит
uint32беззнаковый целочисленный, 32 бит
uint64беззнаковый целочисленный, 64 бит

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

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

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

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

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

Numeric Types

Numeric classes in MATLAB ® include signed and unsigned integers, and single-precision and double-precision floating-point numbers. By default, MATLAB stores all numeric values as double-precision floating point. (You cannot change the default type and precision.) You can choose to store any number, or array of numbers, as integers or as single-precision. Integer and single precision arrays offer more memory-efficient storage than double precision.

All numeric types support basic array operations, such as indexing, reshaping, and mathematical operations.

Functions

Create Numeric Variables

doubleDouble-precision arrays
singleSingle-precision arrays
int88-bit signed integer arrays
int1616-bit signed integer arrays
int3232-bit signed integer arrays
int6464-bit signed integer arrays
uint88-bit unsigned integer arrays
uint1616-bit unsigned integer arrays
uint3232-bit unsigned integer arrays
uint6464-bit unsigned integer arrays

Convert Between Numeric Types

castConvert variable to different data type
typecastConvert data type without changing underlying data

Query Type and Value

isintegerDetermine whether input is integer array
isfloatDetermine if input is floating-point array
isnumericDetermine whether input is numeric array
isrealDetermine whether array is real
isfiniteDetermine which array elements are finite
isinfDetermine which array elements are infinite
isnanDetermine which array elements are NaN

Numeric Value Limits

epsFloating-point relative accuracy
flintmaxLargest consecutive integer in floating-point format
InfCreate array of all Inf values
intmaxLargest value of specific integer type
intminSmallest value of specified integer type
NaNCreate array of all NaN values
realmaxLargest positive floating-point number
realminSmallest normalized floating-point number

Topics

MATLAB represents floating-point numbers in either double-precision or single-precision format. The default is double precision.

This example shows how to perform arithmetic and linear algebra with single precision data.

MATLAB supports 1-, 2-, 4-, and 8-byte storage for integer data. If you use the smallest integer type that accommodates your data, you can save memory and program execution time.

This example shows how to perform arithmetic on integer data representing signals and images.

Create complex numbers. Complex numbers consist of a real part and an imaginary part.

MATLAB represents infinity by the special value inf , and values that are neither real nor complex by the special value NaN , which stands for “Not a Number”.

You can check the data type of a variable using any of these commands.

Use the format function or set Preferences to control the display of numeric values.

If you combine different integer types in a matrix (e.g., signed with unsigned, or 8-bit integers with 16-bit integers), all elements of the resulting matrix are given the data type of the leftmost element.

If you combine integers with double , single , or logical classes, all elements of the resulting matrix are given the data type of the leftmost integer.

If you construct a matrix using empty matrix elements, the empty matrices are ignored in the resulting matrix.

These examples show how to concatenate different data types.

Specify hexadecimal and binary values either as literals or as text. Hexadecimal and binary literals are stored as integers. You can convert text representing hexadecimal and binary values to numbers, and numbers to text representations.

MATLAB Command

You clicked a link that corresponds to this MATLAB command:

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

Читать еще:  Решение оду в matlab

You can also select a web site from the following list:

How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

Типы данных и встроенные функции MatLab

Лабораторная работа №1. Основы работы в системе MatLab

Цель работы:освоить принципы работы интегрированной среды MatLab.

Теоретическая часть

Интерфейс системы MatLab

На рисунке 1.1 представлен интерфейс системы MatLab. Вне зависимости от версии MatLab отображаются следующие области:

1. Workspace (рабочая область памяти – область, отражающая все созданные переменные.

2. Command Window (командное окно) — область, в которой вводятся команды и отображаются результаты их выполнения.

3. Command History (история команд) – область, отражающая историю выполнения всех команд.

4. Current Folder (текущая папка) – область, в которой отображается содержимое папки с именем, отображающемся в раскрывающемся списке.

Рис. 1.1. Интерфейс системы MatLab

Типы данных и встроенные функции MatLab

В системе MatLab тип данных определяется автоматически. Пользователю необходимо лишь объявить переменную. Таким образом, набрав некоторое математическое выражение, например, «5+7», после нажатия клавиши Enter, в окне Command Window сразу высветится результат вычисления «ans=12», где ans – служебная переменная, которую можно использовать в расчетах. В случае, когда необходимо выполнить несколько команд, описывающих сложные математические зависимости, содержащие множество переменных, необходимо прибегнуть к следующей форме записи команды «Имя переменной» = «Выражение», где «=» знак присвоения. В том случае, когда отсутствует необходимость в выводе результатов промежуточных расчетов на экран, в конце выражения ставится знак «;».

В системе MatLab основным типом данных является массив или матрица, что следует из названия системы «matrix laboratory», таким образом объявляя переменную, содержащую только число «5», под эту переменную выделяется матрица, что позволяет легко обрабатывать массивы и любой момент добавлять в переменную новые значения. Таким образом, в системе возможна работа со следующими типами данных:

— Число – вещественное числовое значение.

— Массив – это упорядоченное множество элементов одной природы.

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

— Строка – массив, элементами которого являются символы.

— Структура – набор разнотипных полей. Поле может содержать как массив, так и число, так и строку. Одно поле содержит данные только одного типа.

Числа в MatLab могут быть в любом удобном формате с учетом следующих особенностей:

— мнимая единица кодируется с помощью двух символов: i или j;

— целая часть числа от дробной отделяется точкой;

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

По умолчанию рациональные числа выводятся в нормализованной форме с четырьмя цифрами после десятичной точки и одной до нее. Для установки необходимого формата представления чисел используется команда format name, где name — имя формата. Рассмотрим некоторые форматы чисел на примере вывода числа pi:

1. format short – короткое представление числа (5 знаков — 3.1416);

2. format lonq – длинное представление числа (15 знаков – 3.141592653589793);

3. format shortE – короткое представление в экспоненциальной форме (5 знаков мантиссы – 3.1416е+00);

4. format lonqE – длинное представление в экспоненциальной форме (15 знаков мантиссы — 3.141592653589793е+00).

В MatLab встроены следующие элементарные функции аргумента «х»:

— abs(x) – абсолютное значение х;

— exp(x) – экспоненциальная функция е в степени х;

— log(x), log10(x), log2(x) – логарифмы чисел с основанием е, 10, 2;

— sqrt(x) – корень квадратный из х;

— sin(x), cos(x), tan(x), cot(x), sec(x), csc(x) – тригонометрические функции sin x, cos x, tg x, ctg x, sec x, cosec x;

— asin(x), acos(x), atan(x), acot(x), asec(x), acsc(x) – обратные тригонометрические функции arcsin x, arcos x, arctg x, arcctg x, arcsec x, arccosec x;

— all(х) — возвращает 1, если все элементы х отличны от нуля;

— any(х) — возвращает 1, если хотя бы один элемент х отличен от нуля;

— isequal(x, у) — возвращает 1, если значения х и у совпадают;

— isempty(x) — возвращает 1, если х является пустой матрицей (то есть имеет размер 0x0).

Со списком элементарных функций можно ознакомиться, набрав команду «help elfun». Получить информацию о конкретной функции можно воспользовавшись командой help имя_функции.

Сервисные функции MatLab:

1. сlc – производит очистку командного окна.

2. clear – удаляет переменные рабочей среды.

3. input – осуществляет запрос на ввод с клавиатуры. Синтаксис: x=input(‘строка подсказки’). При вводе в командную строку функция input выведет на экран сообщение, содержащееся в строке подсказке (например, «Введите число элементов массива») и будет ожидать ввода переменной «х» с клавиатуры».

4. disp – осуществляет вывод текста или значения переменной в командное окно. Синтаксис: disp(x).

Работа с программами в среде MatLab может быть организована двумя способами:

— в Command Window удобно в случае малого числа команд и небольшого одноразового либо тестированного решения;

Читать еще:  Matlab на русском

— в текстовом редакторе с расширением *.m. Создается отдельный файл, в котором осуществляется отладка программы (рисунок 1.2).

Рис. 1.2. Редактор программ MatLab

Комментарии в MatLab оформляются при помощи знака «%».

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Сдача сессии и защита диплома — страшная бессонница, которая потом кажется страшным сном. 9231 — | 7433 — или читать все.

MATLAB Language Типы данных

пример

В MATLAB имеется 16 основных типов данных или классов. Каждый из этих классов имеет форму матрицы или массива. За исключением дескрипторов функций, эта матрица или массив является как минимум размером 0 на 0 и может вырасти до n-мерного массива любого размера. Функциональный дескриптор всегда скалярный (1 на 1).

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

Если переменная уже существует, MATLAB заменяет исходные данные на новую и при необходимости выделяет новое пространство для хранения.

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

Основные типы данных: числовые, logical , char , cell , struct , table и function_handle .

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

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

MATLAB поддерживает 1-, 2-, 4- и 8-байтовые хранилища для целочисленных данных. Вы можете сохранить память и время выполнения для своих программ, если вы используете наименьший целочисленный тип, который поддерживает ваши данные. Например, для хранения значения 100 вам не нужно 32-разрядное целое число.

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

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

логические: логические значения 1 или 0, соответственно соответствуют true и false. Используется для реляционных условий и индексации массивов. Поскольку это только TRUE или FALSE, размер 1 байт.

состав. Массив структуры — это тип данных, который группирует переменные разных типов данных с использованием контейнеров данных, называемых полями . Каждое поле может содержать любые типы данных. Доступ к данным в структуре с использованием точечной нотации формы structName.fieldName.

Чтобы получить доступ к значению 1, каждый из следующих синтаксисов эквивалентен

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

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

клетка. Это очень полезный тип данных MATLAB: массив ячеек — это массив, каждый из которых может иметь разные типы и размер данных. Это очень сильный инструмент для управления данными по вашему желанию.

Функция handles хранит указатель на функцию (например, на анонимную функцию). Он позволяет передать функцию другой функции или вызвать локальные функции извне основной функции.

Существует множество инструментов для работы с каждым типом данных, а также встроенные функции преобразования типа данных ( str2double , table2cell ).

Дополнительные типы данных

Существует несколько дополнительных типов данных, которые полезны в некоторых конкретных случаях. Они есть:

Дата и время: массивы для представления дат, времени и продолжительности. datetime(‘now’) возвращается 21-Jul-2016 16:30:16 .

Категориальные массивы: это тип данных для хранения данных со значениями из набора дискретных категорий. Полезно для хранения нечетных данных (эффективная память). Может использоваться в таблице для выбора групп строк.

Контейнеры карт представляют собой структуру данных, которая обладает уникальной способностью индексировать не только любые скалярные числовые значения, но и вектор символов. Индексы в элементы Карты называются ключами. Эти ключи вместе со значениями данных, связанными с ними, сохраняются в пределах Карты.

Временные ряды — это векторы данных, отобранные во времени, по порядку, часто через регулярные промежутки времени. Полезно хранить данные, связанные с timesteps, и у него есть много полезных методов для работы.

Ссылка на основную публикацию
Adblock
detector