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 в массиве?

 

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

63617. ІНФОРМАЦІЙНЕ ЗАБЕЗПЕЧЕНН НАУКОВИХ ДОСЛІДЖЕНЬ 75.36 KB
  Інформація є засобом спілкування між людьми і відображає ії суспільні та виробничі взаємовідносини, а також різноманітні прояви матеріального світу. Тільки обмін інформацією між дослідниками через канали комунікацій або прямим спілкуванням на семінарах...
63619. ТЕОРЕТИЧНІ ОСНОВИ ІНВЕСТИЦІЙНОЇ ДІЯЛЬНОСТІ 72.5 KB
  Інвестиції це вкладення капіталу з метою його подальшого збільшення. Закон України Про інвестиційну діяльність†від 18 вересня 1991 року зі змінами і доповненнями визначає інвестиції як усі види майнових і інтелектуальних цінностей що вкладаються...
63620. Вимоги до проведення наукового дослідження 53.49 KB
  Вимоги до проведення наукового дослідження Наукове дослідження завжди повинне носити творчий характер наповнений постійним пошуком і експериментуванням. Наукове дослідження повинне бути потрібним актуальним спиратись на об'єктивні і перевірені дані.
63622. Государственный аппарат 328.52 KB
  По объему властных полномочий или по предмету ведения: Федеральные органы распространяют свою власть на территорию всего государства например Президент РФ Правительство РФ Федеральное Собрание РФ Верховный Суд РФ Высший Арбитражный Суд...
63624. УПРАВЛİННЯ АКТИВАМИ 174.33 KB
  Розглядаючи наведену формулу необхідно визначити період який потрібен для перетворення виробничих запасів дебіторської і кредиторської заборгованості в готівку середній період обороту дебіторської заборгованості...