Лабы / Лабораторная работа03
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «Санкт-Петербургский государственный университет телекоммуникаций им. проф. М. А. Бонч-Бруевича»
Кафедра радиосистем и обработки сигналов
Дисциплина «Прикладные пакеты моделирования»
Лабораторная работа №3
Типы массивов
Выполнил:
Проверил: Межевов П.А
Санкт-Петербург
2022
Знакомство с матрицами числового и логического типов.
>> 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)
Операции с матрицами числового типа.
>> 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 =
Пояснение:
Синус элементов не может быть вычислен
Сумма так же не может быть вычислена
Знакомство с матрицами символьного типа.
>> 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)
Знакомство с массивами записей (структурами).
>> 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
Знакомство с матрицами ячеек.
>> 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')
• что оно собой представляет
Представляет собой матрицу, в которой каждая взятая отдельная матрица графически описана