Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб 1_1(Линал).doc
Скачиваний:
11
Добавлен:
05.06.2015
Размер:
347.65 Кб
Скачать

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

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 =

2

>> size(A)

ans =

2 4

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

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

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

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

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

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

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

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

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

E1 = 0.7922 0.9595 0.6557 0.0357

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

ans =

2

>> 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 =

2

>> ndims(E1)

ans =

2

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 =

3

>> n4=size(E4)

n4 = 3 2 2 2

>> length(n4)

ans = 4

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]