Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен / Ответы на экзамен по ИСС. ГУ УНПК.doc
Скачиваний:
79
Добавлен:
13.06.2014
Размер:
548.86 Кб
Скачать

26. Основные классы вычислительных объектов MatLab. Операции с переменными класса char.

Классом в MatLAB принято называть определенную форму представления вычислительных объектов в памяти компьютера в соответствии с правилами их преобразования. Класс определяет тип переменной, а правила – операции и функции, которые могут быть применены к этому типу. Кроме того, тип опре-деляет объем памяти, которая отводится под переменную и структуру разме-щения данных в этом объеме. Операции и функции определяют методы класса. Основные классы вычислительных объектов в MatLAB:

array – обобщенный класс объектов-массивов, прародитель всех используемых классов;

double – наиболее распространенный тип переменных. Представляет собой чи-словые массивы и матрицы действительных или комплексных чисел с плаваю-щей запятой в формате двойной точности;

char – массив (строка) символов, каждый символ которой занимает 16 битов;

struct – массив записей, состоящий из полей, каждое из которых имеет свое имя;

cell – массив ячеек, состоящий из элементов, которые сами могут содержать любой тип массива разного типа и разного размера;

sparse – разряженные матрицы, для хранения матриц с незначительным числом ненулевых элементов;

uint8– массивы 8-разрядных чисел без знаков, которые размещаются в 1/8 части памяти, необходимой для чисел с двойной точностью.

Ввод символьной переменной charосуществляется в апострофах, например:

st1 = ‘это ’ ; st2 = ‘строка ’ ; st3 = ‘символов ’;

Объединение нескольких переменных в единую строку осуществляется либо

горизонтальной конкатенацией, например:

st=[st1 st2 st3]; или st=strcat(st1,st2,st3);

st=

это строка символов либо вертикальной конкатенацией, например:

stv=strvcat(st1,st2,st3);

st=

это строка символов

Обращение к элементам полученной строки возможно либо по отдельности, например: st(3). ans=0.

либо к интервалу (горизонтальная конкатенация), например: st(6:9), либо к массиву (вертикальная конкатенация), например: st(2,2:5). Примерами наиболее распространенных функций являются: upper(st) / lower(st) – смена регистра; findstr(st,st1) – выдает номер элемента строки st первого элемента st1 из этой строки; strrep(s1,s2, s3) – заменяет в строке s1 элементы s2 на элементы s3.

27. Операции с матрицами в MatLab: формирование, преобразование, обработка данных.

Формирование матриц:

b=[1 2 5; 2 5 4; 5 1 2]; матрица b: 3 на 3.

Доступ к элементам матрицы: a(2,3) тут обозначаются 2-я строка и 3-й столбец.

Символ ";" создаёт разделени на столбцы, а символ "," на строки.

Для интервального ввода элементов используется форма, где значение шага по умолчанию равно 1:

<начальное значение>: <шаг элементов> :<конечное значение>

Примерами функций для формирования специальных матриц являются следующие:

zeros (M,N) – создает матрицу размером (M*N) с нулевыми элементами:

>> zeros (3,5)

ans =

0 0 0 00

0 0 0 00

0 0 0 00

ones (M,N) – создает матрицу размером (M*N) с единичными элементами;

eye (M,N) – создает матрицу размером (M*N) с единичными элементами по главной диагонали и остальными нулевыми элементами;

rand (M,N) – создает матрицу размером (M*N) из случайных чисел, равномерно распределенных в диапазоне от 0 до 1;

randn (M,N) – создает матрицу размером (M*N) из случайных чисел, распреде-ленных по нормальному закону с нулевым математическим ожиданием и стан-дартным (среднеквадратическим) отклонением, равным единице;

fliplr (A) – формирует матрицу переставляя столбцы известной матрицы A от-носительно вертикальной оси;

flipud (A) – формирует матрицу переставляя столбцы известной матрицы A от-носительно горизонтальной оси;

rot90 (A) – формирует матрицу путем поворота заданной матрицы A на 90 гра-дусов против часовой стрелки;

tril(A) – образует нижнюю треугольную матрицу на основе матрицы А путем обнуления ее элементов выше главной диагонали;

triu (A) - образует верхнюю треугольную матрицу на основе матрицы А путем обнуления ее элементов ниже главной диагонали;

diag (х) – формирует или извлекает диагональ матрицы. Если х – вектор, то функция diag (x) создает квадратную матрицу с вектором х на главной диагонали.

Сложение и вычитание матриц:

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

столюцов 1-й должны быть равны числу строк 2-й.

s=a+b или r=b-a; r=b*3; это умножение число на массив.

Поэлементные операции:

v1=[1; 2; 1; 2]

v2=[1; 2; 1; 2]

- u=v1.*v2; ".*" это поэлементное умножение 2-х векторов.

Точка "." нужна для поэлементного "*, /, ^".

Векторных функций(на примере вектора V):

sort(V); sum(V); cumsum(V); prod(V); cumprod(V);diff(V); std(V); mean(V);

[max, s] = max(V); [min, s] = min(V).

Примерами матричных функций являются (на примере матрицы A):

inv(A) – вычисление обратной матрицы;

sqrtm(A) – вычисляет такую матрицу Y , что Y*Y=A;

eig(A) или [R,D] = eig(A) – вычисление собственных векторов матрицы, в по-следнем случае из условия A*R=R*D;

Вычисление матричной экспоненты (еА) производится с помощью функций expm, expm1, expm2 и expm3. Функция expm (А) вычисляет матричную экспо-ненту путем использования разложения Паде матрицы А. Функция expm2 (А) вычисляет матричную экспоненту, используя разложение Тейлора матрицы А. Функция expm3 (А) вычисляет матричную экспоненту, используя спектральное разложение А.