- •Порядок выполнения.
- •Работа с системой matlab.
- •Работа с окнами системы matlab.
- •Упражнение 1. Работа с окнами системы matlab.
- •Строка главного меню.
- •Вычисления в матлаб.
- •Примеры. Вычислений в матлаб.
- •1. Операция сложение.
- •2. Операции возведения в степень и извлечения корня n-ой степени.
- •Пример. Точка с запятой.
- •Переменные рабочего пространства (Workspace).
- •Пример. Переменные рабочего пространства.
- •Форматы вывода результата вычислений.
- •Упражнение 2. Форматы вывода результата вычислений.
- •Символьные переменные. Работа с алгебраическими выражениями.
- •Пример. Работа с алгебраическими выражениями, с символьными переменными.
- •Пример. Работа с алгебраическими выражениями. Подстановка чисел.
- •Пример. Упрощение алгебраических выражений.
- •Массивы в matlab.
- •Матричное представление данных
- •Примеры. Задание матриц.
- •Упражнение 3.
- •Примеры. N-мерные массивы
- •Различные способы задания массивов.
- •Матрицы
- •Примеры. Задание матрицы в matlab:
- •Векторы
- •Операции над векторами Сложение и вычитание векторов.
- •Упражнение 5.
- •Умножение и деление вектора на число.
- •Операции над матрицами
- •Умножение матриц
- •Свойства операций над матрицами.
- •Упражнение 7.
- •Работа с элементами массивов.
- •Обращение к элементам векторов. Примеры.
- •Упражнение 8.
- •Упражнение 9.
- •Обращение к элементам матрицы. Примеры.
- •Обращение к строкам и столбцам матрицы через двоеточие.
- •Упражнение 10. Обращение к элементам массивов.
- •Задание для самостоятельной работы:
- •Темы для презентаций:
- •Контрольные вопросы:
- •Список рекомендуемой литературы
Примеры. Задание матриц.
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,. Сделайте выводы.
Итак, важно понять, что число, вектор-строка, вектор-столбец или матрица являются математическими объектами, которые представляются двумерными массивами.
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, в частности построение графиков, решение задач линейной алгебры, обработки данных, статистики и многих других.
Массив - упорядоченная, пронумерованная совокупность однородных данных. У массива должно быть имя. Массивы различаются по числу размерностей или измерений. Доступ к элементам осуществляется при помощи индекса.
Еще раз: число, вектор-строка, вектор-столбец или матрица являются математическими объектами, массивы - способы хранения этих объектов в компьютере. Всюду дальше чаще будут использоваться слова «вектор» и «матрица», так как для нас больший интерес представляет сам объект, чем способ его хранения. Слово «массив» будет использоваться и для вектора, и для матрицы, когда их различие будет несущественным.