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

 

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

71517. Использование различных свойств наследования для расширения и уточнения классов 107.17 KB
  Цель работы: Получить практические навыки в разработке алгоритмов и написании программ с использованием различных свойств наследования для расширения и уточнения классов. Оборудование: IBM – совместимый компьютер, система программирования BC3.1, MVC++ 6.00.
71518. Использование конструкторов и деструктора при проектировании пользовательского класса 144.21 KB
  Цель работы: Получить практические навыки в разработке алгоритмов и написании программ с использованием конструкторов и деструктора при проектировании пользовательского класса. Оборудование: IBM – совместимый компьютер, система программирования BC3.1, MVC++ 6.00.
71519. Разработка и отладка алгоритмов и программ с использованием указателей 313.5 KB
  Цель работы: Получить практические навыки в разработке алгоритмов и написании программ на языке С с использованием указателей. Оборудование: IBM – совместимый компьютер, система программирования BC3.1, MVC++ 6.00.
71520. Разработка и отладка алгоритмов и программ обработки массивов 233.01 KB
  Цель работы: Получить практические навыки в разработке алгоритмов и написании программ на языке С, обрабатывающих массивы. Оборудование: IBM – совместимый компьютер, система программирования BC3.1, MVC++ 6.00. Вариант 4 Дано натуральное число N. Сколько цифр в числе N?
71521. Мультимедиа технологии 147.51 KB
  Задан речевой сигнал (каждый отсчет представлен 16 битовым целым числом). Файл NAT.WAV Разделить сигнал на кадры по 240 отсчетов каждый. Кадр 77 из 179 Текущий кадр -1528 -2817 -3071 -2677 -2428 -2435 -2394 -1941 -966 316 1457 1962 1757 1220 392 -93 4 -74 -302 -943...
71522. Детали машин и основы конструирования (Курс лекций) 4.19 MB
  Курс лекций нацелен на формирование базовых знаний, необходимых для успешного последующего изучения машин, их конструкции и рабочих процессов, происходящих в них при обычных и экстремальных условиях. В свою очередь, Курс лекций базируется на знаниях, полученных при изучении естественнонаучных...
71523. Хозяйственное и трудовое право 669 KB
  Одним из основных условий успешного построения гражданского общества с рыночной экономикой является наличие у руководителей и специалистов глубоких знаний в области хозяйственного и трудового права и умение использовать их в хозяйственной практике..
71524. Лекции по курсу Истории Отечества 313 KB
  Угрофинские, финские, прибалтийские и балтийские народы, чуваши жили на территории современной России. Через территорию России проходили скифы, авары, унгры, булгары, хазары, сарматы. Были и остготы, создавшие первые государственные образования. Прародиной славян считается часть Польши...
71525. История науки и техники 140 KB
  Афины стали главным ремесленным центром Средиземноморья однако у греческих предпринимателей не хватало рабочей силы тогда они стали покупать рабов. В греческих судах каждый должен был защищать себя сам; на этих процессах истцы и ответчики изощрялись в ораторском искусстве...