![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Основные теоретические сведения. По умолчанию все числовые переменные в MATLAB считаются матрицами, так что скалярная величина есть матрица первого порядка
По умолчанию все числовые переменные в MATLAB считаются матрицами, так что скалярная величина есть матрица первого порядка, а векторы являются матрицами, состоящими из одного столбца или одной строки. Матрицу можно ввести, задав ее элементы или считав данные из файла, а также в результате обращения к стандартной или написанной пользователем функции. Матричные данные размещаются в памяти последовательно по столбцам. Элементы матрицы в пределах строки отделяются пробелами или запятыми. Непосредственное задание матрицы можно осуществить несколькими способами. Например, вектор-столбец, то есть матрица, вторая размерность которой равна единице, может быть присвоена переменной А вводом одной строки: > > A=[7+4i; 4; 3.2] % Ввод вектора-столбца A = 7.0000 + 4.0000i 4.0000 3.2000 или вводом нескольких строк > > A = [ % ввод вектора по строкам 7+4i 3.2]; Векторы могут быть сформированы как диапазоны – при помощи двоеточий, разделяющих стартовое значение, шаг и предельное значение. Если величина шага отсутствует, то по умолчанию его значение равно единице. В результате n: m: k будет сформирован вектор, последний элемент которого не больше k для положительного шага m, и не меньше – для отрицательного: [ n, n + m, n + m + m, …] Например: > > a=1: 2: 5 a = 1 3 5 Задание диапазона используется также при организации цикла. В таблице 2.1 представлен некоторый набор функций для создания матриц специального вида.
Таблица 2.1. Функции описания матриц
Обращение к элементу матрицы производится по правилу, – в круглых скобках после имени матрицы даются индексы, которые должны быть положительными целыми числами, указывающими номер строки и через запятую, номер столбца. Например, А(2, 1) означает элемент из второй строки первого столбца матрицы А. Для дальнейших примеров введем матрицу 2x2:
> > A=[1 2+5*i; 4.6 3] A = 1.0000 2.0000 + 5.0000i 4.6000 3.0000 Чтобы изменить элемент матрицы, ему нужно присвоить новое значение: > > A(2, 2)=10 % Второй элемент второй строки
A = 1.0000 2.0000 + 5.0000i 4.6000 10.0000
Размер матрицы можно уточнить по команде size, а результат команды size можно использовать для организации новой матрицы. Например, нулевая матрица того же порядка, что и матрица А, будет сформирована по команде
> > A2=zeros(size(A)) A2 = 0 0 0 0 С помощью двоеточия легко выделить часть матрицы. Например, вектор из первых двух элементов второго столбца матрицы A задаётся выражением:
> > A(1: 2, 2) ans = 2.0000 + 5.0000i 10.0000
Двоеточие само по себе означает строку или столбец целиком. Для удаления элемента вектора достаточно присвоить ему пустой массив – пару квадратных скобок []. Чтобы вычеркнуть одну или несколько строк (столбцов) матрицы нужно указать диапазон удаляемых строк (столбцов) для одной размерности и поставить двоеточие для другой размерности. Для нахождения длины вектора можно воспользоваться также командой length. Набор арифметических операций в MATLAB для работы с матрицами состоит из стандартных операций сложения – вычитания, умножения – деления, операции возведения в степень и дополнены специальными матричными операциями (табл.2.2). Если операция применяется к матрицам, размеры которых не согласованы, то будет выведено сообщение об ошибке. Для поэлементного выполнения операций умножения, деления и возведения в степень применяются комбинированные знаки (точка и знак операции). Например, если за матрицей стоит знак (^), то она возводится в степень, а комбинация (.^) означает возведение в степень каждого элемента матрицы. При умножении (сложении, вычитании, делении) матрицы на число соответствующая операция всегда производится поэлементно.
Таблица 2.2 Знаки операций
Проиллюстрируем различие обычного и поэлементного умножений при помощи следующего примера. Введём матрицу H размера 2х2 и матрицу D из единиц той же размерности:
> > H=[0 1; 2 3], D=ones(size(H)) H = 0 1 2 3 D = 1 1 1 1 Перемножим матрицы, используя обычное умножение: > > H*D ans = 1 1 5 5 Теперь применим поэлементную операцию: > > H.*D ans = 0 1 2 3 Система MATLAB имеет ряд функций, предназначенных для обработки данных, заданных в матричной или векторной форме (таблица 2.3).
Таблица 2.3 Функции для работы с матрицами
Символы и текстовые строки в MATLAB вводятся при помощи простых кавычек. Во внутреннем представлении символы даны целыми числами. Конвертировать массив символов в числовую матрицу позволяет команда double. Обратная операция совершается по команде char. Печатаемые символы из стандартного набора ASCII представлены числами от 32 до 255. Приведем примеры для данных команд. Вначале введем строку: > > s = 'Привет' s = Привет
Отметим, что для ввода русских букв следует выбрать в меню File/ Preferences/ Command Windows Font шрифт с русской кодировкой. > > h = [v + ' от MATLAB'] v = Привет от MATLAB Тот же результат получится, если вместо переменной v использовать строковую переменную s. Для перевода численных данных в строковые переменные имеется ряд команд преобразования. В таблице 2.4 приведены некоторые функции для этих и обратных операций, а полных список можно получить по команде help strfun.
Таблица 2.4 Функции работы со строковыми переменными
|