Lesson5_mail (1063585)
Текст из файла
ОПРЕДЕЛЕНИЕ РАЗМЕРОВ МАТРИЦРаботая с матрицами в MATLAB, важно уметь определять их размеры автоматически, с помощьюкоманд, вместо того чтобы делать это вручную. Функция size определяет число строк истолбцов как в виде одного вектора, так и в виде двух отдельных чисел:>> s = size (A)>> [m,n] = size(A)Функция length находит наибольшее из значений, определенных функцией size:>>length(A)Обычно эту функцию используют при работе с векторами (в случае, когда одно из значений,определенных функцией size, равно 1):>> length (x)Функция numel определяет общее число элементов:>> numel(A)>> m*nОПЕРАЦИИ НАД МАТРИЦАМИКак и в случае с векторами, арифметические операции над матрицами определены в своемобычном математическом смысле. Таким образом:>> C = A + B;создает матрицу C такую, что C(i,j) равно A(i,j) + B(i,j).Операции со скалярами для удобства рассматриваются отдельно.
Операция вида>> C = k*A;где k – скаляр, а А – массив произвольного размера, умножает каждый элемент массива А навеличину k. Аналогично>> C = A + k;добавляет k к каждому элементу A (если k - скаляр).Для любых нескалярных (т.е. в виде массива) операндов, умножение, деление и возведение встепень осуществляются как операции над матрицами. Математически для выполненияматричного умножения вида>> C = A*Bнеобходимо, чтобы соответствующие размеры матриц – число столбцов А и число строк В –согласовались.
Если A размерами mхn, а B - nхp, то C будет размерами mхp. При использовании внаписании программ матричной математики, следует в полной мере применять широкиевозможности MATLAB по обработке матриц.Возведение в степень считается допустимой операцией при определенных размерах операндов.>> help mpowerОПЕРАЦИИ НАД МАССИВАМИИногда целесообразно использовать операцию над массивом (т.е.
поэлементную операцию)вместо матричных операций.MATLAB позволяет умножать, делить и возводить в степень массивы, игнорируя заданные поумолчанию матричные операции. Чтобы сделать это, нужно просто поставить перед операторомточку (.):4-0Если A или B скаляр, то>> C = A.*Bявляется скалярным умножением, и эквивалентно>> C = A*BОбе операции дают одинаковый результат.Поскольку матричное сложение и вычитание являются поэлементными операциями, нетнеобходимости различать их с соответствующими операциями над массивами. Поэтому оператора. + (или . -) в MATLAВ нет.МАТЕМАТИЧЕСКИЕ ОПЕРАЦИИКак и над векторами, над всей матрицей можно осуществлять математические операции спомощью единственной команды:>> LogA = log(A);ДАННЫЕВСРЕДЕMATLABИСТАТИСТИЧЕСКИЕОПЕРАЦИИМатематические функции, такие как sin и sqrt выполняются поэлементно для любых входныхданных в виде массива.
Статистические функции наподобие max и mean, однако, предназначеныдля обработки набора данных, а не отдельных величин. Если х – вектор, то, например, команда>> mean(x)однозначно определена. Однако, если х – матрица, то эту команду можно воспринимать поразному: как расчет среднего всех элементов в х, или как расчет среднего строк в х, или среднегостолбцов в х.Для решения задач статистики по строкам в MATLAB представляются разные наблюдения илислучаи, а по столбцам – разные переменные.Таким образом, статистические функции в MATLAB работают с каждым столбцом независимо отдругих, как с отдельной переменной, и представляют каждый столбец в виде вектора.Представление матричных данных в виде столбцов независимых переменных позволяетосуществлять статистический анализ нескольких переменных с помощью единственной команды.ПОСТРОЕНИЕ ГРАФИКОВ НЕСКОЛЬКИХ СТОЛБЦОВФункции построения двумерных графиков (plot, bar, stem и т.д.) при операциях с матрицамиработаю так же, как и статистические функции: столбцы считаются независимыми переменными.Поэтому>> plot(X,Y)где Y имеет размерность mxn одновременно строит n графиков, каждый из которых соответствует>> plot(X,Y(:,k))Для того, чтобы различать столбцы, каждый график выполняется цветом, который определяетсяциклической последовательностью ('b', 'g', 'r', ‘c ‘, ‘m’, ‘y’, ‘k’), кромебелого.Могут использоваться те же маркеры и стили линий, какие применяются при построенииграфиков по векторным данным.
Однако, допускается только один их набор, которыйиспользуется при построении графика каждого столбца.>> plot(X,Y,':p')2-1Можно также и задать определенный цвет линии, однако он также будет задан для всех столбцов,делая все графики одного цвета.>> plot(X,Y,'r:p')ПРЕОБРАЗОВАНИЯХотя можно легко, используя функцию mean, рассчитать средние значения по столбцам (поумолчанию) или строкам (используя дополнительный аргумент индекса), предположим, что такженужно рассчитать среднее всех элементов массива. Простой способ сделать это – преобразоватьматрицу в вектор и использовать функцию mean:>> Avector = reshape(A, m*n,1) % где A – матрица mxn>> AvgAll = mean(Avector)Заметим, что необязательно указывать порядок, в котором элементы матрицы A записываются ввектор Avector.
Это связано с тем, что MATLAB сохраняет данные по столбцам. Таким образом,матрица1 2 34 5 6последовательно записывается в память 1, 4, 2, 5, 3, 6. Это позволяет эффективно применятьстатистические функции, поскольку столбцы записываются на непрерывный участок памяти.Преобразование матрицы не изменяет формат, в котором данные хранятся в памяти, а лишьменяет индексирование, которое определяет, как MATLAB определяет данные. Это позволяетбыстро и просто группировать и перегруппировывать данные без необходимости выполнениявычислений и копирования.Для удобства, при преобразовании можно не вводить значение одного из измерений.>> reshape(A,95,[])>> reshape(A,[],2)ЛИНЕЙНОЕ ИНДЕКСИРОВАНИЕПоскольку элементы массивов сохраняются в памяти последовательно по столбцам, MATLABпозволяет определять положение элемента с помощью одного последовательного индекса илилинейного индекса.Если А – матрица 5х3, то первый столбец содержит элементы 1 – 5, второй 6 – 10 и т.д.
Такимобразом, команда>> A(12)определит значение элемента (2,3) матрицы A (второго элемента третьего столбца):Один из способов линейно проиндексировать массив – использовать оператор (:). Команда>> a = A(:) ;записывает все данные массива A в вектор-столбец а.Для расчета линейных индексов на основании строчных и столбцовых индексов, используетсяфункция sub2ind; функция ind2sub выполняет обратную операцию.>> s = size(A);>> idx1 = sub2ind(s, 1, 3)>> idx2 = iSE2Tnd(s,s(l),5)>> [r1,c1] = ind2sub (s, idx1)>> [r2,c2] = ind2sub (s, idx2)2-2.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.















