Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / Лабораторная работа03

.docx
Скачиваний:
0
Добавлен:
28.04.2023
Размер:
88.54 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «Санкт-Петербургский государственный университет телекоммуникаций им. проф. М. А. Бонч-Бруевича»

Кафедра радиосистем и обработки сигналов

Дисциплина «Прикладные пакеты моделирования»

Лабораторная работа №3

Типы массивов

Выполнил:

Проверил: Межевов П.А

Санкт-Петербург

2022

  1. Знакомство с матрицами числового и логического типов.

>> A = [127.1 -127.1 127.7; -127.7 0 128.4; -128.4 255.7

255.1]

A = 127.1000 -127.1000 127.7000

-127.7000 0 128.4000

-128.4000 255.7000 255.1000

>> B = int8(A) B =

127

-127

127

-128

0

127

-128

127

127

>> С =

uint

8(A)

С =

127

0

128

0

0

128

0

255

255

>> D = logical(A)

Warning: Values

other than 0 or 1 converted to logical 1

D =

1

1

1

1

0

1

1

>> class(A) ans = double

>> class(B) ans =

int8

>> class(C) ans =

uint8

>> class(D) ans = logical

Пояснение:

1

1

Пояснение:

1. С помощью функций преобразований типа: double (X);int8(X);uint8(X).

2. Вещественный двойной точности

3. Целый 8-битовый со знаком

4. Целый 8-битовый без знака

5. class(X)

  1. Операции с матрицами числового типа.

>> sin(A)

ans =

0.9910

-0.8936

-0.9910

0

0.8936

0.3943

-0.3943 -0.9428 -0.5899

>> sin(B)

??? Function 'sin' is not defined for values of class 'int8'.

Error in ==> sin at 12

builtin('sin', varargin{:});

>> sin(C)

??? Function 'sin' is not defined for values of class 'uint8'.

Error in ==> sin at 12

builtin('sin', varargin{:});

>> A+B

??? Error using ==> plus

Integers can only be combined with integers of the same class, or scalar doubles.

>> B+C

??? Error using ==> plus

Integers can only be combined with integers of the same class, or scalar doubles.

>> x=[A>1]

>> A

A =

127.1000 -127.1000

-127.7000 0

127.7000

128.4000

-128.4000 255.7000 255.1000

>> class(x) ans = logical >> size(x) ans =

Пояснение:

Синус элементов не может быть вычислен

Сумма так же не может быть вычислена

  1. Знакомство с матрицами символьного типа.

>> X = ['Зеленухо ' 'Матвей ' 'Тимофеевич'] X =

Зеленухо Матвей Тимофеевич

>> Y = ('Зеленухо ', 'Матвей ', 'Тимофеевич')

Y =

Зеленухо

Матвей

Тимофеевич

>> F = [char('^K ','FIR') char('R=15','Order=15')] F =

КИХ R=15

FIR Order=15

>> G=num2str(A)

G =

127.1

-127.1

127.7

-127.7

0

128.4

-128.4

255.7

255.1

Пояснение:

1. С помощью пробелов, которые должен выставить пользователь

2.char('<char1>','<char2>'...) где <char1>,<char2>... — элементы

столбца с произвольным количеством символов

3.Преобразование матрицы численного или логического типа в матрицу символьного типа выполняется с помощью функции num2str(x)

  1. Знакомство с массивами записей (структурами).

>> filter(1).Type='lowpass'; >> filter(2).Type='highpass'; >> filter(3).Type='bandpass'; >> filter(4).Type='stopband'; >> filter(1).Order='10'; >> filter(2).Order='20'; >> filter(3).Order='30'; >> filter(4).Order='40';

>> filter(1).Fs='1000';

>> filter(2).Fs='2000';

>> filter(3).Fs='3000';

>> filter(4).Fs='4000';

>> filter filter = 1x4 struct array with fields:

Type Order Fs >> filter (1) ans =

Type: 'lowpass'

Order: '10'

Fs: '1000'

>> filter.Type ans = lowpass ans = highpass ans = bandpass ans = stopband >> filter(3).Type ans = bandpass

>> rmfield(filter,'Fs')

ans =

1x4 struct array with fields:

Type

Order

Пояснение:

  • с какой целью создается массив записей

Структура (массив записей — struct array) — это разновидность нечислового массива, предназначенного для описания M объектов N параметрами. Для описания структуры потребуется ввести ряд новых терминов

  • что собой представляет запись и значение записи

Type (тип избирательности) — lowpass, highpass, bandpass,

stopband;

Order (порядок фильтра) — 10, 20, 30, 40;

Fs— 1000, 2000, 3000, 4000

  • каков размер массива записей Filter

  1. Знакомство с матрицами ячеек.

>> S{1,1}=A;

>>S{1,2}=B;

>>S{1,3}=C;

>>S{2,1}=D;

>>S{2,2}=F;

>>S{2,3}=G;

>>S{3,1}=X;

>>S{3,2}=Y;

>>S{3,3}=filter;

>> S{1,1}

ans =

127.1000 -127.1000 127.7000

-127.7000 0 128.4000

-128.4000 255.7000 255.1000

>> class(S{1,1})

ans =

double

>> class(S{1,2})

ans =

int8

>> class(S{1,3})

ans =

uint8

>> class(S{2,1})

ans =

logical

>> class(S{2,2})

ans =

char

>> class(S{2,3})

ans =

char

>> class(S{3,1})

ans =

char

>> class(S{3,2})

ans = char

>> class(S{3,3})

ans = struct

Пояснение:

  • из каких элементов создается матрица ячеек

Массив ячеек (cell array) — это наиболее сложный тип массива, элементами которого являются ячейки, представляющее собой массивы любой размерности, любого размера и типа. Элементы массива ячеек указываются в фигурных скобках.

  • как эти элементы вводятся

Поочередно присваиваем значения

  • как выводится графическое представление матрицы ячеек Графическое представление матрицы ячеек создается с помощью функции:

cellplot(A,'legend')

• что оно собой представляет

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

Соседние файлы в папке Лабы