51080

Работа с размерностями многомерных массивов пакета MatLab

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

Информатика, кибернетика и программирование

Цель работы: Знакомство с возможностями системы MATLAB: освоение навыков работы с размерностями многомерных масcивов в пакете MATLAB.

Русский

2014-02-05

39.79 KB

1 чел.

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

Государственное образовательное учреждение высшего

профессионального образования

Тульский государственный университет

Кафедра  Электроэнергетика

Применение ЭВМ в электроэнергетических расчетах

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

Работа с размерностями многомерных массивов пакета MatLab

Направление подготовки:

140200 – «Электроэнергетика»

Форма обучения (очная)

Тула 2010 г.


  1.  Цель работы:

Знакомство с возможностями системы MATLAB: освоение навыков работы с размерностями многомерных масcивов в пакете MATLAB.

  1.  Теоретические сведения, необходимые для выполнения лабораторной работы
  2.  Вычисление размера размерности массива.

Для вычисления размера каждой размерности массива используется функция size:

  1.  M = size(A,DIM) возвращает размер размерности, указанной скаляром DIM, в виде вектора-строки размером 2. Для двумерного или одномерного массива А size(A,1) возвращает число рядов, а size(A,2) – число столбцов;

Для N-мерных массивов А при n>2 size(A) возвращает N-мерный вектор-строку, отражающий страничную организацию массива, последняя составляющая этого вектора равна N. В векторе отсутствуют данные о единичных размерностях (тех, где расположены вектор-строка или вектор-столбец, т.е. size(A,DIM)==1). Исключение представляют N-мерные массивы Java массивов javaarray, которые возвращают размер массива самого высокого уровня.

Вообще, когда входным аргументом size является javaarray, то возвращаемое число столбцов всегда 1, а число рядов (строк) равно размеру (длине) javaarray.

  1.  [M1,M2,M3,…,MN] = size(A) возвращает размер первых N размерностей массива А;
  2.  D=size(A), для  матрицы А возвращает двухэлементный вектор-строку, в котором первая составляющая – число строк m, а вторая составляющая – число столбцов n;
  3.  [m,n]=size(A) возвращает число рядов и столбцов в разных выходных параметрах (выходных аргументах в терминологии MATLAB) m и n.
  4.  Перестановки размерностей массивов

Если представить многомерный массив в виде страниц, то их перестановка является перестановкой размерностей массива. Для двумерного массива перестановка часто означает транспонирование – замену строк столбцами и наоборот. Следующие функции обобщают транспонирование матриц для случая многомерных массивов и обеспечивают перестаноку размерностей многомерных массивов:

  1.  permute (A,ORDER) – переставляет размерности массива А в порядке, определяемом вектором перестановок ORDER. Вектор ORDER – одна из возможных перестановок всех целых чисел от 1 до N, где N – размерность массива А;
  2.  ipermute (A,ORDER) – операция обратная permute:

permute (permute (A,ORDER), ORDER)=А

Ниже приводятся примеры применения этих функций и функций size:

>> A=[1 2;3 4];

>> B=[5 6;7 8];

>> C=[9 10;11 12];

>> D=cat(3,A,B,C)

D(:,:,1) =

    1     2

    3     4

D(:,:,2) =

    5     6

    7     8

D(:,:,3) =

    9    10

   11    12

>> size(D)

ans =

    2     2     3

>> size(permute(D,[3 2 1]))

ans =

    3     2     2

 

>> size(ipermute(D,[2 1 3]))

ans =

    2     2     3

>> ipermute(permute(D,[3 2 1]),[3 2 1])

ans(:,:,1) =

    1     2

    3     4

ans(:,:,2) =

    5     6

    7     8

ans(:,:,3) =

  1.     10

                                                           11    12

2.3 Сдвиг размерностей массивов

Сдвиг размерностей реализуется функцией shiftdim:

  1.  B=shiftdim(X,N) – сдвиг размерностей в массиве X на величину N. Если N>0, то сдвиг размерностей, расположенных справа, выполняется влево, а N первых слева размерностей сворачиваются в конец массива, т.е. движение размерностей идет по кругу против часовой стрелки. Если N<0, сдвиг выполняется вправо, причем N первых размерностей, сдвинутых вправо, замещаются единичными размерностями;
  2.  [B,NSHIFTS]=shiftdim(X) – возвращает массив B с тем же числом элементов, что и у массива X, но с удаленными начальными единичными размерностями. Выходной параметр NSHIFTS показывает число удаленных размерностей. Если X – скаляр, функция не изменяет X, B, NSHIFTS.

Следующий пример иллюстрирует применение функции shiftdim:

>> A=randn(1,2,3,4);

>> [B,N]=shiftdim(A)

B(:,:,1) =

  -0.5883   -0.1364    1.0668

   2.1832    0.1139    0.0593

B(:,:,2) =

  -0.0956    0.2944    0.7143

  -0.8323   -1.3362    1.6236

B(:,:,3) =

  -0.6918    1.2540   -1.4410

   0.8580   -1.5937    0.5711

B(:,:,4) =

  -0.3999    0.8156    1.2902

   0.6900    0.7119    0.6686

N =

    1

  1.  Задание:
  2.  Вычислить размер размерности массива

1

[3, 6]

16

[0, 6]

2

[4, 7]

17

[1, 5]

3

[5, 5]

18

[2, 6]

4

[7, 4]

19

[3, 4]

5

[9, 3]

20

[4, 6]

6

[0, 2]

21

[5, 3]

7

[2, 1]

22

[6, 6]

8

[4, 0]

23

[3, 2]

9

[6, 9]

24

[6, 6]

10

[7, 8]

25

[3, 1]

11

[8, 7]

26

[7, 6]

12

[9, 6]

27

[8, 0]

13

[0, 5]

28

[3, 6]

14

[1, 4]

29

[9, 7]

15

[3, 3]

30

[3, 9]

  1.  Переставить размерности массива

1

А=[0 9; 7 9], В=[1 5; 9 4],

С=[2 2; 9 9], D=cat[3, A,B,C]

16

А=[3 9; 7 6], В=[3 5; 9 7],

С=[2 9; 9 8], D=cat[3, A,B,C]

2

А=[3 9; 3 9], В=[3 5; 9 4],

С=[2 9; 9 5], D=cat[3, A,B,C]

17

А=[1 9; 7 9], В=[3 9; 9 4],

С=[2 9; 9 2], D=cat[3, A,B,C]

3

А=[3 9; 6 9], В=[8 5; 9 4],

С=[2 7; 9 9], D=cat[3, A,B,C]

18

А=[3 3; 7 9], В=[3 5; 9 6],

С=[2 9; 9 4], D=cat[3, A,B,C]

4

А=[9 9; 7 9], В=[1 5; 9 4],

С=[2 9; 2 9], D=cat[3, A,B,C]

19

А=[3 9; 5 9], В=[3 6; 9 4],

С=[2 9; 7 7], D=cat[3, A,B,C]

5

А=[3 9; 7 3], В=[3 4; 9 4],

С=[2 9; 5 9], D=cat[3, A,B,C]

20

А=[3 9; 8 9], В=[3 5; 6 4],

С=[1 9; 9 5], D=cat[3, A,B,C]

6

А=[3 9; 6 9], В=[3 9; 9 9],

С=[1 9; 0 9], D=cat[3, A,B,C]

21

А=[3 7; 9 9], В=[8 9; 9 9],

С=[3 9; 9 3], D=cat[3, A,B,C]

7

А=[3 9; 7 9], В=[3 5; 9 4],

С=[2 9; 9 9], D=cat[3, A,B,C]

22

А=[6 9; 9 9], В=[3 9; 7 9],

С=[8 9; 9 9], D=cat[3, A,B,C]

8

А=[3 4; 9 9], В=[3 1; 9 8],

С=[3 9; 3 9], D=cat[3, A,B,C]

23

А=[9 9; 9 9], В=[3 9; 0 9],

С=[3 1; 9 9], D=cat[3, A,B,C]

9

А=[3 9; 6 7], В=[3 9; 8 9],

С=[3 0; 9 3], D=cat[3, A,B,C]

24

А=[3 3; 9 9], В=[3 9; 3 9],

С=[3 2; 9 9], D=cat[3, A,B,C]

10

А=[3 9; 4 9], В=[3 9; 5 9],

С=[1 2; 9 9], D=cat[3, A,B,C]

25

А=[3 9; 9 4], В=[3 9; 9 5],

С=[3 6; 9 9], D=cat[3, A,B,C]

11

А=[3 9; 9 1], В=[3 9; 0 2],

С=[5 9; 7 9], D=cat[3, A,B,C]

26

А=[3 9; 9 7], В=[3 8; 9 9],

С=[2 9; 9 9], D=cat[3, A,B,C]

12

А=[4 9; 9 9], В=[3 9; 5 9],

С=[3 9; 3 9], D=cat[3, A,B,C]

27

А=[3 9; 4 9], В=[3 9; 9 5],

С=[3 9; 6 9], D=cat[3, A,B,C]

13

А=[3 6; 9 9], В=[3 9; 7 9],

С=[3 8; 9 9], D=cat[3, A,B,C]

28

А=[3 9; 7 9], В=[3 9; 8 6],

С=[3 9; 4 9], D=cat[3, A,B,C]

14

А=[3 9; 1 9], В=[3 9; 9 3],

С=[2 9; 9 9], D=cat[3, A,B,C]

29

А=[3 3; 9 2], В=[3 9; 5 9],

С=[3 0; 9 9], D=cat[3, A,B,C]

15

А=[4 9; 9 9], В=[3 9; 5 9],

С=[3 6; 9 9], D=cat[3, A,B,C]

30

А=[3 1; 9 9], В=[3 9; 2 9],

С=[3 9; 4 9], D=cat[3, A,B,C]

  1.  Сдвиньте размерности массива

1

А=randn (2,3,4,5)

16

А=randn (2,3,3,7)

2

А=randn (3,4,5,6)

17

А=randn (2,5,5,5)

3

А=randn (7,8,9,1)

18

А=randn (2,3,4,8)

4

А=randn (9,8,7,6)

19

А=randn (3,3,5,5)

5

А=randn (5,4,3,2)

20

А=randn (8,8,4,5)

6

А=randn (2,8,4,3)

21

А=randn (2,3,9,5)

7

А=randn (1,3,6,5)

22

А=randn (7,3,4,5)

8

А=randn (7,3,3,5)

23

А=randn (7,3,5,5)

9

А=randn (2,5,1,5)

24

А=randn (2,9,4,5)

10

А=randn (2,9,9,5)

25

А=randn (7,3,5,5)

11

А=randn (1,3,5,5)

26

А=randn (2,3,4,5)

12

А=randn (2,4,7,5)

27

А=randn (2,3,4,5)

13

А=randn (3,3,4,7)

28

А=randn (2,8,6,5)

14

А=randn (2,8,4,9)

29

А=randn (1,7,4,8)

15

А=randn (1,3,6,5)

30

А=randn (2,3,7,9)

  1.  Правила выполнения и содержание отчета по лабораторной работе

Выполнить отчет о проделанной работе, в котором привести программу решения заданий 1 – 3.

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1.  Что такое размерность массива?
  2.  Что такое размер размерности массива?
  3.  Как применяется оператор «:» в многомерных массивах?
  4.  Как происходит вычисление числа размерностей массива?
  5.  Что такое транспонироваин?
  6.  Как осуществляется сдвиг размерностей?
  7.  За что отвечает функция squeeze в массиве?

 

А также другие работы, которые могут Вас заинтересовать

75605. ОСНОВЫ ПРОЕКТИРОВАНИЯ СИСТЕМ ЦОС. ВЫБОР АЦП 231.5 KB
  В системе ЦОС содержащей АЦП производится переход от непрерывного сигнала к числовому массиву с учетом шага квантования по уровню DX и шага дискретности по времени Dt. Выбор шага квантования по уровню Выбор шага квантования по уровню производится из условия достижения необходимой точности восстановления значений непрерывного измеряемого сигнала в ЭВМ по дискретным отсчетам. Количество уровней квантования N АЦП в диапазоне изменения входного сигнала Xmin – Xmx равно а количество разрядов выходного кода n=log2N Расчет интервала дискретности по...
75606. ОС. Реализация на ПЛИС и ЦСП 524 KB
  Реализация на ПЛИС и ЦСП Современные алгоритмы ЦОС: пути реализации и перспективы применения http: www. Последние годы характеризуются резким ростом плотности упаковки элементов на кристалле многие ведущие производители либо начали серийное производство либо анонсировали ПЛИС с эквивалентной емкостью более 1 миллиона логических вентилей. Цены на ПЛИС к сожалению только лишь в долларовом эквиваленте неуклонно падают...
75607. Сигналы. Электрический сигнал в радиотехнике 390 KB
  Сигнал это информационная функция несущая сообщение о физических свойствах состоянии или поведении какойлибо физической системы объекта или среды а цель обработки сигналов извлечение сведений которые отображены в этих сигналах и преобразование этой информации в форму удобную для восприятия и использования. Для выявления общих свойств сигналов их классифицируют по ряду признаков рис. По возможности предсказания мгновенных значений сигналов в любые моменты времени различают сигналы детерминированные и случайные. Информативным...
75608. РАЗЛОЖЕНИЕ ФУНКЦИЙ В РЯДЫ 259.5 KB
  Ортонормированный базис Для представления одномерных величин достаточно одного параметра. Возникает вопрос нельзя ли ввести ортонормированную систему в пространство функций так же как она вводится для векторного пространства Иначе говоря нельзя ли ввести множество взаимно перпендикулярных единичных функций Если это возможно то рассматриваемую функцию можно выразить в виде линейной комбинации таких функций. Рассмотрим некоторое множество функций семейство функций. Если число этих функций невелико можно...
75609. МАТЕМАТИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ СИГНАЛА. МЕТОДЫ ИССЛЕДОВАНИЯ ПОДОБИЯ СИГНАЛОВ. КОРРЕЛЯЦИЯ 136 KB
  Элемент из этого числового набора называется компонентом вектора. Это означает что анализ вектора f аналогичен анализу функции непрерывного сигнала ft если она не имеет точек разрыва. Для этого необходимо определить понятия: расстояния между векторами скалярное расстояние норма вектора...
75610. РАЗЛОЖЕНИЕ ФУНКЦИЙ В ДЕЙСТВИТЕЛЬНЫЙ РЯД ФУРЬЕ 282.5 KB
  В последнем соотношении колебание самого большого периода, представленное суммой cost и sint, называют колебанием основной частоты или первой гармоникой. Колебание с периодом, равным половине основного периода, называют второй гармоникой
75611. РАЗЛОЖЕНИЕ ФУНКЦИЙ В КОМПЛЕКСНЫЙ РЯД ФУРЬЕ 60.5 KB
  Это и есть разложение в комплексный ряд Фурье. Коэффициенты Сk называются комплексными коэффициентами Фурье и, подобно действительным коэффициентам Фурье, вычисляются как скалярные произведения
75612. КЛЮЧЕВЫЕ ОПЕРАЦИИ ЦОС 191 KB
  Применяется для вычисления выходного сигнала yt линейной системы по заданному входному xt и известному импульсному отклику ht рис. Линейными называются системы для которых справедлив принцип суперпозиции отклик на сумму входных сигналов равен сумме откликов на эти сигналы по отдельности и принцип однородности изменение амплитуды входного сигнала вызывает пропорциональное изменение амплитуды выходного сигнала. Для реальных систем объектов свойство линейности может выполняться приближенно В системах цифровой обработки...
75613. ПРОГРАММИРОВАНИЕ КЛЮЧЕВЫХ ОПЕРАЦИЙ ЦОС В MATLAB 51.5 KB
  Основные арифметические операции в MATLAB: сложение, вычитание, умножение , деление и возведение в степень. Операции умножения, деления и возведения в степень рассчитаны на работу с матрицами, поэтому при поэлементных операциях они записываются