Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка Matlab.DOC
Скачиваний:
143
Добавлен:
29.03.2015
Размер:
619.01 Кб
Скачать

Часть №2

Структуры данных

Таблица №5

тип данных

пример

описание

int8, uint8,

int16, uint16,

int32, uint32,

int64, uint64

uint16(65000)

Множество целых чисел со знаком и без знака. Требуют меньше объема памяти чем single или double. Все целочисленные за исключением int64 и uint64 могут быть использованы в математических операциях.

single

3 * 10^38

Множество чисел обычной точности. Требуют меньший объем памяти чем double, но имеют меньшую точность и диапазон.

double

3 * 10^300

5 + 6i

Множество чисел удвоенной точности. Двумерные массивы могут быть разряженными. Является числовым типом в MATLAB по умолчанию.

logical

magic(4) > 10

Множество логических значений 1 или 0 для представления правды или лжи соответственно. Двумерные массивы могут быть разряженными.

char

'Hello'

Множество символов. Последовательность представляющаяся в качестве вектора символов. Для множеств содержащих больше одной последовательности лучше использовать cellarrays.

cell array

a{1,1} = 12;

a{1,2} = 'Red';

a{1,3} = magic(4);

Множество индексированных ячеек, каждая допускает хранение массива различной величины и типа данных.

structure

a.day = 12;

a.color = 'Red';

a.mat = magic(3);

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

function handle

@sin

Указатель на функцию. Ты можешь передать функцию управления другим функциям.

user class

polynom([0 -2 -5])

Объекты конструированные из определяемого пользователем класса.

Java class

java.awt.Frame

Обьекты конструированные из класса Java.

Часть №3

1. Работа с матрицами

2. Операции и функции в MATLAB

3. Основные операции с массивами

4. Арифметические операторы

5. Операторы отношения

6. Специальные символы

1. Работа с матрицами Обращение к элементу матрицы

Обращение к элементу матрицы производится по естественному правилу, – в круглых скобках после имени матрицы даются индексы, которые должны быть положительными целыми числами. Например, А(2,1)означает элемент из второй строки первого столбца матрицыА. Для дальнейших примеров введем матрицу 2x2:

>> A=[1 2+5*i;4.6e-7 3];

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

>> A(3/2+4i)

Warning: Complex part of array subscript is ignored.

Warning: Subscript indices must be integer values.

ans =

4.6000e-007

Данный пример показывает, что числа хранятся по столбцам и при обращении к данному двумерному массиву элемент А(2)есть то же самое, что иА(2,1). Чтобы изменить элемент матрицы, ему нужно присвоить новое значение:

>> A(2,3)=sin(1) % Третий элемент второй строки

A =

1.0000 2.0000 + 5.0000i 0

0.0000 3.0000 0.8415

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

Размер матрицы можно уточнить по команде size, а результат командыsizeможно использовать для организации новой матрицы. Например, нулевая матрица того же порядка, что и матрицаА,будет сформирована по команде:

>>A2=zeros(size(A)) A2 =

0 0 0

0 0 0

Для преобразования матрицы в матрицу с другим числом строк и столбцов служит команда reshape:

>> A3=reshape(A2,3,2)

A3 =

0 0

0 0

0 0

С помощью двоеточия легко выделить часть матрицы. Например, вектор из первых двух элементов третьего столбца матрицы Aзадаётся выражением:

>> A(1:2,3)

ans =

0

0.8415

Двоеточие само по себе означает строку или столбец целиком. Работа с индексами в MATLABочень удобна. Например, чтобы выделить несколько столбцов массива, достаточно организовать вектор из номеров столбцов. Это можно сделать явным перечислением, а можно указать нужный диапазон. Для выделения матрицы, составленной из нечетных столбцов матрицыА, используем команду:

>> A(:,1:2:3)

ans =

1.0000 0

0.0000 0.8415

Здесь конструкция 1:2:3означает изменение второго индекса от единицы до трех с шагом два. Двоеточие применяется также для замещения элементов матрицы. Следующая команда позволяет переставить первую и вторую строки матрицыА:

>> A([1,2],:)=A([2,1],:)

A =

0.0000 3.0000 0.8415

1.0000 2.0000 + 5.0000i 0

Здесь в качестве индекса выступают векторы [1,2]и[2.1].Для удаления элемента вектора достаточно присвоить ему пустой массив – пару квадратных скобок []. Чтобы вычеркнуть одну или несколько строк (столбцов) матрицы нужно указать диапазон удаляемых строк (столбцов) для одной размерности и поставить двоеточие для другой размерности. Например, для удаления двух последних столбцов матрицыАдостаточно ввести команду:

>>A(:,2:end)=[] A= 0.0000 1.0000