Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Матричное представление данных

Поиск

Матрицей размерности называется прямоугольная таблица, состоящая из n строк и m столбцов. Традиционно в математике эту таблицу заключают в круглые скобки. Например, - матрица размерности ;

Если матрица имеет размер , т.е. состоит из одной строки и m столбцов, то ее называют вектор-строкой. Например, - матрица размерности , т.е. вектор-строка.

Если матрица имеет размер , т.е. состоит n строк и одного столбца, то ее называют вектор-столбцом. Например, - матрица размерности , т.е. вектор - столбец.

В MATLAB все числовые данные представляются в виде матриц. Поэтому любое число тоже рассматривается как матрица размера .

Рассмотрим способы задания матриц в MATLAB.

Примеры. Задание матриц.

1. Для задания вектора - строки (т.е. матрицы размера ) используются квадратные скобки, в которых числовые данные отделяются друг от друга пробелами или запятыми:

>> str1 = [3 4 9 2]

str1 =

3 4 9 2

>> str2 = [5, 3, 3, 2]

str2 =

5 3 3 2

>>

2. Для задания вектор- столбца (т.е. матрицы размера ) используются квадратные скобки, в которых числовые данные отделяются друг от друга точкой с запятой:

>> st = [1.2; 5.3; 6.4]

a =

1.2000

5.3000

6.4000

>>

3. Комбинируя оба варианта разделителя, можно задать матрицу, число строк и столбцов которой больше одного (двумерный массив):

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

A =

1 2 3 4

0 -1 -3 -2

4. Любое число рассматривается в MATLAB как матрица размера .

>> n=3

n = 3

>> m=[3]

m = 3

5. Снова просмотрите каждую переменную в окне Workspace.

>> whos str1 str2 st A n m

Name Size Bytes Class Attributes

A 2x4 64 double

m 1x1 8 double

n 1x1 8 double

st 3x1 24 double

str1 1x4 32 double

str2 1x4 32 double

6. Узнайте n-мерность (измерение) и размерность переменных str1, str2, st, A, n, m, при помощи встроенных функций ndims и size, сделайте выводы:

>> ndims(A)

ans =

>> size(A)

ans =

2 4

Матрица A хранится в двумерном (ndims(A)) массиве размерностью (size(A)) 3х1 (три на один): вектор-столбец A состоит из трех строк и одного столбца.

Упражнение 3.

Проделайте аналогичные операции для остальных переменных str1, str2, st, n, m,. Сделайте выводы.

 

Итак, важно понять, что число, вектор-строка, вектор-столбец или матрица являются математическими объектами, которые представляются двумерными массивами.

N-мерные массивы данных

Приведем примеры массивов другой размерности.

Примеры. N-мерные массивы

Команда rand(k,l,n,m) позволяет создавать матрицу с произвольными числами (от 0 до 1) размерности k x l (k строк, l столбцов), n, m - добавляют единицы измерения, например

>> E1=rand(1,4) %создаем матрицу размерности 1x4

E1 = 0.7922 0.9595 0.6557 0.0357

>> ndims(E1) % увидим, что E1 - двумерный массив

ans =

>> E2=rand(size(st)) %создаем матрицу той же размерности, что и st, 3x1

E2 =

0.9340

0.6787

0.7577

>> ndims(E2) % убедимся: E2 - двумерный массив

ans = 2

Заметим следующее:

>> n1=size(E1)

n1 = 1 4

>> size(n1) % это тоже, что и size(size(E1))

ans =

1 2

>> length(n1)

ans = 2

>> length(size(E1))

ans =

>> ndims(E1)

ans =

length() – возвращает наибольшее из чисел размерности-size массива

То есть

ndims(E1)=length(size(E1))

 

Проверьте этот факт для остальных переменных рабочего пространства.
Посмотрим, как это работает для массивов размерности 3 и 4.

>> E3=rand(3,2,2) % создадим трехмерный массив

E3(:,:,1) =

0.0046 0.8687

0.7749 0.0844

0.8173 0.3998

E3(:,:,2) =

0.2599 0.9106

0.8001 0.1818

0.4314 0.2638

Образно говоря, мы получили «многоэтажный дом». Теперь, чтобы обратиться к элементам трехмерного массива, нужно задать номера строки, столбца и «этажа». В данном массиве два этажа, «в каждом этаже» по три строки и по два столбца.

>> ndims(E3)

ans = 3

E3(:,:,1) – выводит первую матрицу 3х2, E3(:,:,2) –выводит вторую матрицу 3х2

Роль символа двоеточия «:» интуитивно понятен, позже будет объяснение и плотная работа с этим символом.

>> E4=rand(1,2,3,2) %создадим четырехмерный массив

E4(:,:,1,1) = 0.3692 0.1112

E4(:,:,2,1) = 0.7803 0.3897

E4(:,:,3,1) = 0.2417 0.4039

E4(:,:,1,2) = 0.0965 0.1320

E4(:,:,2,2) = 0.9421 0.9561

E4(:,:,3,2) = 0.5752 0.0598

Мы получили «улицу» из «одинаково этажных домов». Теперь, чтобы обратиться к элементам четырехмерного массива, нужно задать номера строки, столбца, «этажа» и «номер дома». В данном массиве два дома, по три этажа в каждом, на каждом «этаже» одна строка и три столбца.

E4(:,:,3,1) - выводит третий массив первого уровня, E4(:,:,2,2) – выводит второй массив второго уровня.

>> ndims(E4)

ans = 4

И мы снова видим: ndims(A)=length(size(A))

>> n3=size(E3)

n3 = 3 2 2

>> length(n3)

ans =

>> n4=size(E4)

n4 = 3 2 2 2

>> length(n4)

ans = 4

 

 

Итак, все данные в MATLAB представляются в виде массивов. Очень важно правильно понять, как устроены массивы. Без этого невозможна эффективная работа в MATLAB, в частности построение графиков, решение задач линейной алгебры, обработки данных, статистики и многих других.

Массив - упорядоченная, пронумерованная совокупность однородных данных. У массива должно быть имя. Массивы различаются по числу размерностей или измерений. Доступ к элементам осуществляется при помощи индекса.

Еще раз: число, вектор-строка, вектор-столбец или матрица являются математическими объектами, массивы - способы хранения этих объектов в компьютере. Всюду дальше чаще будут использоваться слова «вектор» и «матрица», так как для нас больший интерес представляет сам объект, чем способ его хранения. Слово «массив» будет использоваться и для вектора, и для матрицы, когда их различие будет несущественным.

 

 

3. Различные способы задания массивов.

Матрицы

Матрица - математический объект, записываемый в виде прямоугольной таблицы чисел, которая представляет собой совокупность строк и столбцов, на пересечении которых находятся её элементы. Количество строк и столбцов матрицы задают размер матрицы. Если у матрицы количество строк m совпадает с количеством столбцов n, то такая матрица называется квадратной, а число m = n называется размером квадратной матрицы или её порядком.

 

Примеры. Задание матрицы в MATLAB:

Основной способ: с помощью оператора квадратные скобки: [ ]

>> A = [1 3; 2 4]

A =

1 3

2 4

>> B = [1:3;4:6;7:9]

B =

1 2 3

4 5 6

7 8 9

>> C = [B(1:2,:); A(1:3)]

C =

1 2 3

4 5 6

1 2 3

Особые матрицы:

Матрица из единиц: ones(…)

Матрица из нулей: zeros(…)

Единичная матрица: eye(…) – на главной диагонали стоят единицы, на остальных местах нули.

 

 

>> eye(2,2)

ans =

1 0

0 1

>> eye(2,3)

ans =

1 0 0

0 1 0

>> eye(3,2)

ans =

1 0

0 1

0 0

>> eye(3)

ans =

1 0 0

0 1 0

0 0 1

 

 

Векторы

Матрица из одной строки называется вектор-строкой, из одного столбца – вектор-столбцом, такие матрицы мы будем называть просто векторами.

 

Упражнение 4.. Различные способы задания векторов.

1) Задать вектор-строку с помощью

a) ввода чисел c пробелами;

b) ввода чисел с запятыми;

c) стандартной функцией horzcat(,,,)

d) двоеточия «:» с шагом можно задать те же числа от 1 до 6 с шагом 1

2)Задать вектор- столбец с помощью

a) точки запятой «;»;

b) транспонировав вектор-строку, с помощью символа «'» -одинарная кавычка (буква э в латинском регистре)

с) стандартной функцией vertcat(,,,)

d) двоеточия «:» с шагом и транспонирования «'».

Сцепление векторов.

1. Из нескольких вектор-столбцов можно составить один, используя квадратные скобки и разделяя исходные вектор-столбцы точкой с запятой:

>> v1 = [1; 2]; v2 = [3; 4; 5]; v = [v1; v2]

v =

>>

2. Для сцепления вектор-строк также применяются квадратные скобки, но сцепляемые вектор-строки отделяются пробелами или запятыми:

>> w1 = [1 2]; w2 = [3 4 5]; w = [w1 w2]

w =

1 2 3 4 5

 



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 658; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.136.19.203 (0.006 с.)