Главная страница
Навигация по странице:

  • _____________________________________________________________________________

  • Типы Массивов

  • Типы массивов L3. Лабораторная работа 3 Типы Массивов Выполнили группа рм03 Миронов М. Е. Фокичев А. А. Проверил преподаватель Гуреев А. Е


    Скачать 224 Kb.
    НазваниеЛабораторная работа 3 Типы Массивов Выполнили группа рм03 Миронов М. Е. Фокичев А. А. Проверил преподаватель Гуреев А. Е
    АнкорТипы массивов L3
    Дата11.04.2022
    Размер224 Kb.
    Формат файлаdoc
    Имя файлаL3_MironovFokichev.doc
    ТипЛабораторная работа
    #462359

    ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

    Федеральное государственное бюджетное образовательное

    учреждение высшего образования

    «Санкт-Петербургский государственный университет телекоммуникаций

    им. проф. М. А. Бонч-Бруевича»

    _____________________________________________________________________________

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

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


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

    Выполнили: группа РМ-03

    Миронов М. Е.

    Фокичев А. А.

    Проверил: преподаватель: Гуреев А.Е.

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

    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

    >> C = uint8 (A)

    C =

    127 0 128

    0 0 128

    0 255 255

    >> D = logical (A)

    D =

    1 1 1

    1 0 1

    1 1 1

    >> class (A)

    ans =

    double

    >> class (B)

    ans =

    int8

    >> class (C)

    ans =

    uint8

    >> class (D)

    ans =

    logical

    Пояснения:

    • С помощью функций преобразований типа:

      • int8(A)

      • uint8(A)

      • logical(A)

    • по правилу целый 8-битовый со знаком

    • по правилу целый 8-битовый без знака

    • логический

    • class(A)



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

    >> sin (A)

    ans =

    0.9910 -0.9910 0.8936

    -0.8936 0 0.3943

    -0.3943 -0.9428 -0.5899

    >> sin (B)

    ??? Undefined function or method 'sin' for input arguments of type 'int8'.

    >> sin (C)

    ??? Undefined function or method 'sin' for input arguments of type 'uint8'.

    >> A+B

    ??? Error using ==> plus

    Class of operand is not supported.

    >> B+C

    ??? Error using ==> plus

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

    >> x=[A>1]

    x =

    1 0 1

    0 0 1

    0 1 1

    >> A

    A =

    127.1000 -127.1000 127.7000

    -127.7000 0 128.4000

    -128.4000 255.7000 255.1000

    >> class (x)

    ans =

    logical

    >> size (x)

    ans =

    3 3

    >> B&C

    ans =

    1 0 1

    0 0 1

    0 1 1

    Пояснение:

    • Синус элементов B и C не могут быть вычислены

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



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

    >> X=['Петров ' 'Алексей ' 'Андреевич']

    X =

    Петров Алексей Андреевич

    >> Y=['Егоров ' 'Олег ' 'Борисович']

    Y =

    Егоров Олег Борисович

    >> F = [char('КИХ ','FIR ') char('R=15','Order=15')]

    F =

    КИХ R=15

    FIR Order=15

    >> A

    A =

    127.1000 -127.1000 127.7000

    -127.7000 0 128.4000

    -128.4000 255.7000 255.1000

    >> G=num2str(A)

    G =

    127.1 -127.1 127.7

    -127.7 0 128.4

    -128.4 255.7 255.1

    >> class (A)

    ans =

    double

    >> class (G)

    ans =

    char

    Пояснение:

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

    • char(‘’,''...) где ,... — элементы столбца с произвольным количеством символов.



    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).Poles='true';

    filter(2).Poles='false';

    filter(3).Poles='false';

    filter(4).Poles='true';

    >> filter

    filter =

    1x4 struct array with fields:

    Type

    Order

    Poles

    >> filter (1)

    ans =

    Type: 'lowpass'

    Order: '10'

    Poles: 'true'

    >> filter.Type

    ans =

    lowpass

    ans =

    highpass

    ans =

    bandpass

    ans =

    stopband

    >> filter(3).Type

    ans =

    bandpass

    >> rmfield(filter, 'Poles')

    ans =

    1x4 struct array with fields:

    Type

    Order

    Пояснение:

    Структура (массив записей — struct array) — это разновидность нечислового

    массива, предназначенного для описания M объектов N параметрами.

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

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

    Poles (наличие полюсов) — true, false, false, true.

    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

    >> S{1,2}

    ans =

    127 -127 127

    -128 0 127

    -128 127 127

    >> class(S{1,2})

    ans =

    int8

    >> S{1,3}

    ans =

    127 0 128

    0 0 128

    0 255 255

    >> class(S{1,3})

    ans =

    uint8

    >> S{2,1}

    ans =

    1 1 1

    1 0 1

    1 1 1

    >> class(S{2,1})

    ans =

    logical

    >> S{2,2}

    ans =

    КИХ R=15

    FIR Order=15

    >> class(S{2,2})

    ans =

    char

    >> S{2,3}

    ans =

    127.1 -127.1 127.7

    -127.7 0 128.4

    -128.4 255.7 255.1

    >> class(S{2,3})

    ans =

    char

    >> S{3,1}

    ans =

    Петров Алексей Андреевич

    >> class(S{3,1})

    ans =

    char

    >> S{3,2}

    ans =

    Егоров Олег Борисович

    >> class(S{3,2})

    ans =

    char

    >> S{3,3}

    ans =

    1x4 struct array with fields:

    Type

    Order

    Poles

    >> class(S{3,3})

    ans =

    struct



    Пояснения:

    Массив ячеек (cell array) — это наиболее сложный тип массива, элементами которого

    являются ячейки, представляющее собой массивы любой размерности, любого

    размера и типа.

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

    Графическое представление матрицы ячеек создается с помощью функции cellplot (A, “legend”)

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

    Самостоятельная работа

    1С) Операции с элементами массива ячеек

    >> personal(1).surname = 'Иванов';

    personal(2).surname = 'Петров';

    personal(3).surname = 'Сидоров';

    >> personal(1).data = [1 2 1949];

    personal(2).data = [5 7 1975];

    personal(3).data = [5 8 1956];

    personal(1).position = 'профессор';

    personal(2).position = 'доцент';

    personal(3).position = 'зав.лаб.';

    personal(1).phd = true;

    personal(2).phd = true;

    personal(3).phd = false;

    >> A{1,1} = pi;

    A{1,2} = [1 2 3;4 5 6];

    A{1,3} = char('abs','angle');

    A{2,1} = [ones(5,1)]';

    A{2,2} = zeros(3,1);

    A{2,3} = 'Alla';

    A{3,1} = 7 ;

    A{3,2} = rand(5,1);

    A{3,3} = personal;

    >> B=sum(A{1,2})+A{1,1}

    B =

    8.1416 10.1416 12.1416

    2С) Операции с матрицами целого типа

    >> A = [int8(270.1) int8(320.8) int8(526.5)]

    A =

    127 127 127

    >> B = [int8(120.1) int8(130.2) int8(97.2)]

    B =

    120 127 97

    >> A+B

    ans =

    127 127 127

    3С) Операции с матрицами логического типа

    >> C = [A
    C =

    0 0 0

    0 1 0

    1 1 1

    4С) Операции с матрицами символьного типа

    >> A = [123.1 119.2 95.3; 78.4 99.5 111.6; 162.7 32.8 156.9]

    A =

    123.1000 119.2000 95.3000

    78.4000 99.5000 111.6000

    162.7000 32.8000 156.9000

    >> class (A)

    ans =

    double

    >> B = num2str(A)

    B =

    123.1 119.2 95.3

    78.4 99.5 111.6

    162.7 32.8 156.9

    >> class (B)

    ans =

    char

    5С) Операции с массивами записей

    >> Person(1).Name=['Петров' 'Алексей' 'Андреевич'];

    Person(2).Name=['Гельфанд' 'Анна' 'Вениаминовна'];

    Person(3).Name=['Гирфанова' 'Кристина' 'Фаритовна'];

    >> Person(1).RV=[190 195; 80 85];

    Person(2).RV=[160 165; 50 60];

    Person(3).RV=[160 165; 40 50];

    >> Person.Name

    ans =

    ПетровАлексейАндреевич

    ans =

    ГельфандАннаВениаминовна

    ans =

    ГирфановаКристинаФаритовна

    >> Person(1)

    ans =

    Name: 'ПетровАлексейАндреевич'

    RV: [2x2 double]

    >> Person.RV

    ans =

    190 195

    80 85

    ans =

    160 165

    50 60

    ans =

    160 165

    40 50


    написать администратору сайта