Как задать массив в matlab
Как задать массив в matlab
Массивы чисел в системе MATLAB
Наборы чисел в программировании принято называть массивами. Всему массиву присваивается одно имя, а доступ к отдельным элементам массива осуществляется по целочисленному индексу, то есть номеру элемента в массиве. Массивы бывают одномерными, когда используется единственный индекс (номер), а могут быть и многомерными (в частности — двумерными).
Сначала рассмотрим одномерные массивы. Это линейные наборы чисел (элементов), в которых позиция каждого элемента задаётся единственным числом — его номером. Можно говорить о первом элементе массива, о втором и т.д.
Для задания одномерного массива, состоящего из нескольких чисел (вещественных или комплексных), используется операция конкатенации, обозначаемая с помощью квадратных скобок — [] . Например, следующее выражение
формирует переменную с именем a1 , являющуюся одномерным массивом из трёх элементов (вещественных чисел). Объединяемые в массив элементы должны отделяться друг от друга либо пробелом, либо запятой. Так что выражение
абсолютно идентично предыдущему.
Для доступа к индивидуальному элементу одномерного массива нужно после его имени указать в круглых скобках индекс (номер) этого элемента. Например, третий элемент массива a1 обозначается как a1(3) , первый элемент — как a1(1) , второй элемент — как a1(2) .
Если требуется изменить третий элемент уже сформированного выше операцией конкатенации массива a1 , то можно применить операцию присваивания:
Пусть, к примеру, второй элемент массива a1 должен стать равным среднему арифметическому первого и третьего элементов. Для этого выполняем следующее действие:
Количество элементов в одномерном массиве всегда можно узнать с помощью функции length :
При попытке чтения несуществующего элемента (напрмер, четвёртого элемента массива a1 ) в командном окне MATLABа появляется сообщение об ошибке:
В этом сообщении утверждается, что индекс превысил размер массива.
В то же время запись несуществующего элемента вполне допустима — она означает добавление нового элемента к уже существующему массиву:
Применяя к массиву a1 функцию length , находим, что количество элементов в этом массиве возросло до четырёх:
То же самое действие — «удлинение массива a1 » ,можно выполнить и с помощью операции конкатенации:
Здесь операндами операции конкатенации являются массив a1 , состоящий из трёх элементов, и добавляемый к нему четвёртый элемент, равный 7 .
Теперь создадим ещё один одномерный массив a2 , причём для его создания не будем использовать операцию конкатенации (как мы поступили выше). Вместо этого будем прописывать каждый элемент создаваемого массива по-отдельности:
a2(1) = 67
a2(2) = 7.8
a2(3) = 0.017
Из двух существующих массивов — массива a1 с четырьмя элементами и массива a2 с тремя элементами, можно одной (групповой) операцией конкатенации создать одномерный массив b из семи элементов:
Массивы могут состоять не только из вещественных чисел. Выражение
d = [ 1+2i, 2+3i, 3-7i ]
формирует одномерный массив d комплексных чисел. Разделителем элементов формируемого одномерного массива может быть либо пробел, либо запятая. При использовании выражений и комплексных чисел использование запятой предпочтительнее.
Теперь рассмотрим двумерные массивы, которые можно трактовать как набор чисел, упорядоченный в виде прямоугольной таблицы, когда для доступа к индивидуальному элементу используется два индекса — номер строки и номер столбца (на пересечении которых и стоит выбранный элемент).
Двумерный массив характеризуется количеством строк и количеством столбцов. Составим массив a3 , состоящий из двух столбцов и трёх строк:
Из этого рисунка хорошо видно, что в качестве разделителя строк в формируемом с помощью операции конкатенации двумерном массиве служит точка с запятой.
Как и в случае одномерных массивов двумерный массив можно создать, индивидуально прописывая его элементы:
a3(1,1) = 1
a3(1,2) = 2
a3(2,1) = 3
a3(2,2) = 4
a3(3,1) = 5
a3(3,2) = 6
Для доступа к отдельным элементам двумерного массива используется выражение с круглыми скобками, в которых через запятую перечисляются его индексы. Первым указывается номер строки, вторым — номер столбца.
Система MATLAB может работать и с массивами больших размерностей. Они будут рассматриваться позже в следующем разделе.
Вернёмся к двумерным массивам, которые в математике принято называть матрицами. Любая строка матрицы является одномерным массивом, и любой столбец матрицы также является одномерным массивом. Однако есть некоторая разница в упорядочении их элементов с точки зрения матриц: элементы первого одномерного массива упорядочены вдоль строк матрицы (горизонтально), а элементы второго — вдоль столбцов (вертикально). Если явно учитывать в понятии одномерного массива эту разницу, то тогда массивы первого типа называют вектор-строками, а второго типа — вектор-столбцами. В этом случае также можно считать, что вектор-строки являются частным случаем матрицы с количеством строк, равным единице, а вектор-столбцы являются частным случаем матрицы с количеством столбцов, равным единице.
В системе MATLAB все одномерные массивы трактуются либо как вектор-строки, либо как вектор-столбцы. До сих пор мы вводили только вектор-строки. Следующее выражение, использующее операцию конкатенации, задаёт вектор-столбец
состоящий из трёх строк, так как точка с запятой в операции конкатенации означает переход на новую строку.
Для массива a4 функция length(a4) возвращает число 3 , так как действительно этот массив состоит из трёх элементов. Функция length не различает вектор-строки и вектор-столбцы.
Если попросить систему MATLAB показать значение переменной a4 , то мы увидим следующую картину:
То есть MATLAB распознаёт «геометрию» этого одномерного массива и наглядно отображает его, располагая элементы для показа в своём окне вертикально.
Чтобы отразить правильно геометрию вектор-столбцов и вектор-строк, а также узнать размеры двумерного массива в обоих направлениях, используют функцию size . Для двумерного массива a3 получается следующий результат:
причём первым показывается число строк, а вторым — число столбцов.
Применяем эту же функцию к одномерным массивам. Вот, что из этого получается для вектор-строки a2
состоящего из одной строки и трёх столбцов. Для вектор-столбца a4 , состоящего из трёх строк и одного столбца, имеем следующий результат применения функции size :
Наконец, попробуем применить эту функцию к переменной, состоящей из единственного числового значения, то есть к скаляру:
var1 = 5
size(var1)
ans =
1 1
Отсюда видно, что система MATLAB трактует даже по-существу скалярные величины как массивы с размером 1×1. Это ровным счётом ничего не меняет для пользователя, так как он может не обращать на это никакого внимания. MATLAB переходит от скаляров к массивам прозрачно, не требуя от пользователя дополнительных действий.
Итак, всё, с чем работает MATLAB, является массивами различной размерности. Все массивы из текущего сеанса работы (текущего Рабочего пространства) можно просмотреть
с точки зрения их структуры с помощью команды whos .
Документация
Создание массивов строк
Строковые массивы были введены в R2016b. Строковые массивы хранят части текста и обеспечивают набор функций для работы с текстом как данные. Можно индексировать в, измениться и конкатенировать массивы строк, как вы можете с массивами любого другого типа. Также можно получить доступ к символам в строке и добавить текст к строкам с помощью plus оператор. Чтобы перестроить строки в массиве строк, используйте функции, такие как split соединение , и sort .
Создание массивов строк от переменных
MATLAB® обеспечивает строковые массивы, чтобы сохранить части текста. Каждый элемент массива строк содержит последовательность символов 1 на n.
Начиная в R2017a, можно создать строку с помощью двойных кавычек.
Как альтернатива, можно преобразовать вектор символов в строку с помощью string функция. chr 1 17 вектор символов. str строка 1 на 1, которая имеет тот же текст как вектор символов.
Создайте массив строк, содержащий несколько строк с помощью [] оператор. str 2 3 массив строк, который содержит шесть строк.
Найдите длину каждой строки в str с strlength функция. Используйте strlength , не length , определить количество символов в строках.
Как альтернатива, можно преобразовать массив ячеек из символьных векторов в массив строк с помощью string функция. MATLAB отображает строки в строковых массивах с двойными кавычками и векторы символов отображений в массивах ячеек с одинарными кавычками.
В дополнение к векторам символов можно преобразовать числовой, datetime, длительность и категориальные значения к строкам с помощью string функция.
Преобразуйте числовой массив в массив строк.
Преобразуйте значение datetime в строку.
Кроме того, можно считать текст из файлов в строковые массивы с помощью readtable textscan , и fscanf функции.
Создание пустых и отсутствующих строк
Строковые массивы могут содержать и пустые и отсутствующие значения. Пустая строка содержит нулевые символы. Когда вы отображаете пустую строку, результатом является пара двойных кавычек ни с чем между ними ( «» ). Отсутствующая строка является строкой, эквивалентной NaN для числовых массивов. Это указывает, где массив строк имеет отсутствующие значения. Когда вы отображаете отсутствующую строку, результатом является , без кавычек.
Создайте массив пустой строки с помощью strings функция. Когда вы вызываете strings без аргументов это возвращает пустую строку. Обратите внимание на то, что размер str 1 на 1, не 0 на 0. Однако str содержит нулевые символы.
Создайте пустой символьный вектор с помощью одинарных кавычек. Обратите внимание на то, что размер chr 0 на 0.
Создайте массив строк, где каждый элемент является пустой строкой. Можно предварительно выделить массив строк с strings функция.
Чтобы создать отсутствующую строку, преобразуйте отсутствующее значение с помощью string функция. Отсутствующая строка отображается как .
Можно создать массив строк и с пустыми и с отсутствующими строками. Используйте ismissing функция, чтобы определить, какие элементы являются строками с отсутствующими значениями. Обратите внимание на то, что пустая строка не является отсутствующей строкой.
Сравните отсутствующую строку с другой строкой. Результатом всегда является 0 ложь ), даже когда вы сравниваете отсутствующую строку с другой отсутствующей строкой.
Доступ к элементам массива строк
Строковые массивы поддерживают операции над массивами, такие как индексация и изменение. Используйте индексацию массива, чтобы получить доступ к первой строке str и все столбцы.
Доступ к второму элементу во второй строке str .
Присвойте новую строку вне границ str . MATLAB расширяет массив и заполняет освобожденные элементы с отсутствующими значениями.
Доступ к символам в строках
Можно индексировать в массив строк с помощью фигурных скобок, <> , к символам доступа непосредственно. Используйте фигурные скобки, когда необходимо будет получить доступ и изменить символы в строковом элементе. Индексация с фигурными скобками обеспечивает совместимость для кода, который мог работать или со строковыми массивами или с массивами ячеек из символьных векторов. Но каждый раз, когда возможно, используйте строковые функции, чтобы работать с символами в строках.
Доступ к второму элементу во второй строке с фигурными скобками. chr вектор символов, не строка.
Доступ к вектору символов и возвращает первые три символа.
Найдите пробелы в строке и замените их на тире. Используйте isspace функция, чтобы осмотреть отдельные символы в строке. isspace возвращает логический вектор, который содержит истинное значение везде, где существует пробел. Наконец, отобразите модифицированный строковый элемент, str(2,2) .
Обратите внимание на то, что в этом случае можно также заменить пробелы с помощью replace функция, не обращаясь к изогнутой индексации фигурной скобки.
Конкатенация строк в массив строк
Конкатенация представляет в виде строки в массив строк так же, как вы конкатенировали бы массивы любого другого вида.
Конкатенация двух строковых массивов с помощью квадратных скобок, [] .
Транспонируйте str1 и str2 . Конкатенация их и затем вертикально конкатенирует заголовки столбцов на массив строк. Когда вы конкатенируете векторы символов в массив строк, векторы символов автоматически преобразованы в строки.
Добавление текста к строкам
Чтобы добавить текст к строкам, используйте plus оператор + . plus оператор добавляет текст к строкам, но не изменяет размер массива строк.
Добавьте фамилию к массиву имен. Если вы добавляете вектор символов к строкам, то вектор символов автоматически преобразован в строку.
Добавьте различные фамилии. Можно добавить текст к массиву строк от массива строк или от массива ячеек из символьных векторов. Когда вы добавляете нескалярные массивы, они должны быть одного размера.
Добавьте отсутствующую строку. Когда вы добавляете отсутствующую строку с оператором плюс, выход является отсутствующей строкой.
Разделение, присоединение, и сортировка массива строк
MATLAB обеспечивает богатый набор функций, чтобы работать со строковыми массивами. Например, можно использовать split соединение , и sort функции, чтобы перестроить массив строк names так, чтобы имена были в алфавитном порядке фамилией.
Разделите names на пробелах. Разделение изменений names от массива строк 5 на 1 до 5 2 массива.
Переключите столбцы names так, чтобы фамилии были в первом столбце. Добавьте запятую после каждой фамилии.
Соедините фамилии и имена. join функционируйте помещает пробел между строками, которые он соединяет. После соединения, names массив строк 5 на 1.
Сортировка элементов names так, чтобы они были в алфавитном порядке.
Смотрите также
Похожие темы
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
© 1994-2020 The MathWorks, Inc.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Формированиемассивов данных в системе MATLAB
Федеральное государственное бюджетное образовательное учреждение
Высшего профессионального образования
«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ
УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА
(национальный исследовательский университет)»
ОПЕРАЦИИС МАССИВАМИ И ПОЛИНОМАМИ В СРЕДЕ КОМПЬЮТЕРНЫХ ВЫЧИСЛЕНИЙ MATLAB
САМАРА 2012
Министерство образования и науки
Федеральное государственное бюджетное образовательное учреждение
Высшего профессионального образования
«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ
УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА
(национальный исследовательский университет)»
ОПЕРАЦИИС МАССИВАМИ И ПОЛИНОМАМИ В СРЕДЕ КОМПЬЮТЕРНЫХ ВЫЧИСЛЕНИЙ MATLAB
Методические указания к лабораторной работе
Составитель: А.А. Федотов
Операции с массивамии полиномами в среде компьютерных вычислений MATLAB:Метод. указания / –Самар. гос. аэрокосм. ун-т.; сост. А.А. Федотов; Самара, 2012. 12 с.
В методических указаниях изложены основные сведения об особенностях работы с числовыми массивами и полиномами в среде программированияMATLAB.Рассматривается решение различных практических задач обработки одномерных и двумерных числовых массивов средствами среды MATLAB. Приведены порядок выполнения работы и требования к отчету.
Методические указания предназначены для студентов очно-заочной формы обучения, обучающихся по специальности 201000 «Биотехнические системы и технологии» и выполняющих лабораторные работы по дисциплине “Информационные технологии”. Подготовлены на кафедре радиотехники и медицинских диагностических систем.
Ил. 3. Библиогр. 3 назв.
Печатаются по решению редакционно-издательского совета Самарского государственного аэрокосмического университета имениакадемика С.П. Королева
Цель работы:ознакомление с особенностями выполнения различных операций над числовыми массивами и полиномами в среде компьютерных вычислений MATLAB.
Задачи:
1. Изучить синтаксис языка программирования MATLAB для работы с одномерными и двумерными числовыми массивами, а также полиномами.
2. Используя полученные теоретические сведения, выполнить задания лабораторной работы и подготовить отчет.
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАБОТЫ
Формированиемассивов данных в системе MATLAB
MATLABявляется системой компьютерных вычислений, специально предназначенной для осуществления сложных операций с векторами, матрицами и полиномами. Все данные в системе MATLABпредставлены в виде различных массивов – векторов и матриц. Под вектором в MATLAB понимается одномерный массив чисел, а под матрицей – двумерный массив.
Массив – множественный тип данных, состоящий из фиксированного числа упорядоченных и однородных элементов. Для доступа к данным, хранящимся в определенном элементе массива, необходимо указать имя массива и порядковый номер этого элемента, называемый индексом.
Исходные значения вектора-строки можно задавать путем поэлементного ввода. Для этого вначале указывают имя вектора, затем ставят знак присваивания “=”, далее открывающую квадратную скобку “[“, за ней значения вектора, отделяя их между собой пробелами или запятыми. Запись завершается закрывающей квадратной скобкой “]”. На рисунке 1 приведено командное окно создания вектора-строки.
Вектор-столбец задается аналогично вектору строке, но элементы отделяются друг от друга знаком “;”. Для создания вектора-столбца можно также использоватьформу записи с указанием значений через пробел,при этом в конце добавляется апостроф ‘. На рисунке 2 приведено командное окно создания вектора-столбца.
Язык программирования MATLAB дает пользователям возможность сокращенного ввода вектора, элементы которого являются арифметической прогрессией.
>>A=nz:h:kz
где: nz – начальное значение прогрессии (первый элемент вектора), kz – конечное значение прогрессии (последний элемент вектора), h – разность прогрессии (шаг).
Ввод элементов матрицы осуществляется по строкам. При этом элементы строки матрицы отделяются друг от друга пробелами или запятыми, а строки отделяются друг от друга знаком «;». На рисунке 3 приведено командное окно создания матрицы.
Рисунок 3 – Окно результата создания матрицы
Другим способом ввода матрицы в режиме командного окна является построчный ввод, при этом строки отделяются друг от друга с помощью Enter.Для транспонирования матрицы в конце записи необходимо добавить знак апострофа ‘.
Для того чтобы MATLAB не выводил каждый раз значение переменной после ее ввода, необходимо завершать ввод каждой команды знаком “;”.
Матрицу можно преобразовать в вектор-строку с помощью команды следующего вида:
Обращение к элементу матрицы А производится с помощью следующих команд:
A(i, j) – обращение к элементу i-й строки j-го столбца;
A(i, 🙂 – обращение к i-й строки;
A(:, j) – обращение кj-му столбцу.
Для удаления определенного элемента массива достаточно выполнить следующую команду:
>>A(2, 3)=[];
Данная операция удаляет элемент, находящийся во второй строке и третьем столбце. Операцию удаления можно применять не только к отдельному элементу, но и ко всей строке или ко всему столбцу матрицы.
Система MATLAB в отличие от многих других компьютерных систем вычислений устанавливает начальное значение индекса массива как единицу, а не ноль.
Для выполнения операции конкатенации массивов – объединения нескольких массивов в один, в системе MATLABнеобходимо выполнить следующие действия:
>>C=[AB] – горизонтальная конкатенация массивов;
>>C=[A; B] – вертикальная конкатенация массивов.
Для определения числа строк и столбцов матрицы Aв системе MATLAB существует Функция size (А), возвращающая вектор [n, p], содержащий данные о количестве строк и столбцов матрицы А, соответственно.
В системе MATLABсуществует несколько функций, которые позволяют формировать векторы и матрицы определенного вида:
zeros (M, N) – создает матрицу размером M на N с нулевыми элементами;
ones (M, N)– создает матрицу размером M на N с единичными элементами;
eye (M, N)– создает матрицу размером M на N с единицами по главной диагонали и всеми остальными нулями;
rand (M,N)– создает матрицу размером M на N из случайных чисел, распределенных по равномерному закону в диапазоне от 0 до 1;
randn (M,N)– создает матрицу размером M на N из случайных чисел, распределенных по нормальному закону в диапазоне от 0 до 1.
Как задать массив в matlab
В сложных вычислительных задачах (или просто при нежелании программировать на Lua, Cpp и т.д., а пользоваться более высокоуровневыми инструментами разработки), незаменимым оказывается API интерфейс Матлаба реализованный в качестве Active-X COM Automation Server. Для его реализации на языке Си существует специальная библиотека libeng.lib, позволяющая языкам Си, С++, Фортран обмениваться данными и пользоваться всеми ресурсами Матлаба (обычно это обработка видео, автопилоты, ИИ, нейронные сети и т.п.).
Поэтому, в качестве изучения возможностей, попробуем реализовать простейший проект обмена данными и вызова функций Матлаб со стороны Си++ при использовании CodeBlocks и MinGW64.
- Запуск интерфейса Матлаб
Чтобы адресовать все внешние процессы к единому процессу Матлаб, а не запускать Engine для каждого процесса в отдельности,
запустим «двигатель» матлаба внутренней командой :
В этом случае используемые в Cи++ функции engOpen() будут получать указатель на уже существующий интерфейс, а не открывать новый.
- Подключение необходимых библиотек и получение указателя интерфейса
Необходимый минимум :
1. Библиотека libeng.lib, отвечающая за управление интерфейсом Matlab (matlabroot)/extern/lib/win64/microsoft
2. Библиотека libmx.lib, отвечающая за конвертацию данных Matlab — Cpp (matlabroot)/extern/lib/win64/microsoft
3. Файл заголовок engine.h, описывающий доступные пользователю функции. (matlabroot)/extern/include/win64/microsoft
Указатель интерфейса получается вызовом функции ep=engOpen(NULL), с единственно допустимым параметром для Win OS — NULL.
- Передача в Матлаб массива типа Double float,2p
Для того чтобы передать заданный массив размером 2х3 в Матлаб нам необходимо сначала создать некоторый матлаб-совместимый объект mxArray, указатель на который возвращает функция:
*mxCreateDoubleMatrix( число строк, число столбцов, флаг комплексного числа)
После чего, созданный объект заполняется при помощи функции:
memcpy( память назначения (первый элемент mxArray), память источник (массив Cи++), объем копирования памяти в байтах)
Полученный таким образом массив передается в Матлаб по стандартной процедуре:
engPutVariable( указатель процесса Матлаб, имя переменной в процессе Матлаб, передаваемая переменная из Си++)
- Чтение ранее переданного Double float,2p массива из Матлаб
Чтение происходит аналогично, но в обратной последовательности.
- Исполнение заданной Си++ функции в среде Матлаб
Функция для исполнения Матлаб задается строкой (массив char) и в данном случае представляет собой создание и заполнение 2х2 массива ячеек (Cell Array) строковыми переменными.
После того, как функция задана строкой, она исполняется командой:
engEvalString(указатель процесса Матлаб, команда матлаб заданная строкой)
- Чтение массива ячеек из матлаб в цикле
Чтение массива ячеек аналогично чтению массива double за исключением того, что читать нам его приходится поэлементно в цикле, получая строки из ячеек при помощи функции :
строка из ячейки = mxArrayToString( указатель ячейки)
указатель ячейки = mxGetCell( указатель массива, указатель порядкового номера ячейки от 0 до последнего элемента массива)
* В ячейке Cell Array может содержаться не только строка, но и многомерный массив Double, и даже другой Cell Array, в ячейках которого содержаться иные массивы. В данном случае, предполагается использование только простых массивов строк.
int engOutputBuffer(Engine *ep, char *buffer, int buflen); — захват выходного буфера процесса Матлаб
int engSetVisible(Engine *ep, bool newVal); — изменение видимости окна процесса Матлаб
int engClose(Engine *ep); — закрытие указанного процесса Матлаб
Результаты работы программы:
Предложения и критика приветствуются.
Торгуйте алгоритмами.
С уважением, Кот-Бегемот.
Одномерные массивы MATLAB
Описание: Массивы являются основными объектами в системе MATLAB: в версиях 4.х допускаются только одномерные массивы — векторы — и двумерные массивы — матрицы
Дата добавления: 2014-08-04
Размер файла: 14.01 KB
Работу скачали: 18 чел.
Поделитесь работой в социальных сетях
Если эта работа Вам не подошла внизу страницы есть список похожих работ. Так же Вы можете воспользоваться кнопкой поиск
Массивы являются основными объектами в системе MATLAB : в версиях 4.х допускаются только одномерные массивы — векторы — и двумерные массивы — матрицы; в версии 5.0 возможно использование многомерных массивов — тензоров. Ниже описаны функции формирования массивов и матриц, операции над матрицами, специальные матрицы в рамках системы MATLAB версий 4.х.
Формирование массивов специального вида
- ZEROS — формирование массива нулей
- ONES — формирование массива единиц
- EYE — формирование единичной матрицы
- RAND — формирование массива элементов, распределенных по равномерному закону
- RANDN — формирование массива элементов, распределенных по нормальному закону
- CROSS — векторное произведение
- KRON — формирование тензорного произведения
- LINSPACE — формирование линейного массива равноотстоящих узлов
- LOGSPACE — формирование узлов логарифмичесокй сетки
- MESHGRID — формирование узлов двумерной и трехмерной сеток
- : — формирование векторов и подматриц
Операции над матрицами
- DIAG — формирование или извлечение диагоналей матрицы
- TRIL — формирование нижнетреугольной матрицы (массива)
- TRIU — формирование верхнетреугольной матрицы (массива)
- FLIPLR — поворот матрицы относительно вертикальной оси
- FLIPUD — поворот матрицы относительно горизонтальной оси
- ROT90 — поворот матрицы на 90 градусов
- RESHAPE — преобразование размеров матрицы
Специальные матрицы
- COMPAN — сопровождающая матрица характеристического многочлена
- HADAMARD — матрица Адамара (Hadamard matrix)
- HANKEL — матрица Ганкеля (Hankel matrix)
- HILB, INVHILB — матрица Гильберта (Hilbert matrix)
- MAGIC — магический квадрат
- PASCAL — матрица Паскаля (Pascal matrix)
- ROSSER — матрица Рессера (Rosser matrix)
- TOEPLITZ — матрица Теплица (Toeplitz matrix)
- VANDER — матрица Вандермонда (Vandermonde matrix)
- WILKINSON — матрица Уилкинсона (Wilkinson matrix)
Свертка одномерных массивов
z = conv(x, y)
[q, r] = deconv(z, x)
Если заданы одномерные массивы x и y длины соответственно m = length(x) и n = length(y), , то свертка z — это одномерный массив длины m + n -1, k-й элемент которого определяется по формуле
Функция z = conv(x, y) вычисляет свертку z двух одномерных массивов x и y.
Рассматривая эти массивы как выборки из двух сигналов, можно сформулировать теорему свертки в следующей форме:
Если X = fft([x zeros(1, length(y)-1]) и Y = fft([y zeros(1, length(x) — 1]) — согласованные по размерам преобразования Фурье сигналов x и y, то справедливо соотношение conv(x, y) = ifft(X.*Y).
Иначе говоря, свертка двух сигналов эквивалентна умножению преобразований Фурье этих сигналов.
Функция [q, r] = deconv(z, x) выполняет операцию, обратную операции свертки. Эта операция равносильна определению импульсной характеристики фильтра. Если справедливо соотношение z = conv(x, y), то q = y, r = 0.
Сопутствующие функции: Signal Processing Toolbox [1].
1. Signal Processing Toolbox Users Guide. Natick: The MathWorks, Inc., 1993.
Установка шаблона матриц и векторов (Matrix. )
Операция Matrix. (Матрицы) обеспечивает задание векторов или матриц Как известно, матрица является заданным своим именем объектом в виде массива данных MathCAD использует одномерные массивы векторы и двумерные собственно матрицы
Матрица характеризуется числом строк (Rows) и числом столбцов (Columns). Таким образом, число элементов матрицы или ее размерность равны Rows x Columns Элементами матриц могут быть числа, константы, пере менные и даже математические выражения Соответственно матрицы могут быть численными и символьными
Если использовать операцию Matrix. то в текущем окне появится не большое окошко, позволяющее задать размерность вектора или матрицы (см рис 515 справа) Для этого нужно указать число строк Rows и число сголбцов Columns Нажав клавишу Enter или указав курсором мыши на изображение клавиши Insert (Вставить) в окошке, можно вывести шаблон матрицы или вектора (вектор имеет один из параметров размерности, равный 1)
Шаблон содержит обрамляющие скобки и темные маленькие прямоугольники, обозначающие места ввода значений (числовых или символьных) для элементов вектора или матрицы. Один из прямоугольников можно сделать активным (отметив его курсором мыши). При этом он заключается в уголок. Это указывает на то, что в него будут вводиться значения соответствующего элемента. С помощью клавиш перемещения курсора можно по горизонтали пробежаться по всем прямоугольникам и ввести все элементы вектора или матрицы.
Рис. 5. 15 Вывод шаблонов вектора и матрицы и их заполнение
Пока идет ввод элементов векторов или матриц, пустые шаблоны отображаются без каких-либо комментариев. Однако, если закончить ввод до полного заполнения шаблонов, система выведет сообщение об ошибке незаполненный шаблон приобретет красный цвет. Вывод несуществующей матрицы или ошибочное указание ее индексов также отображается красным цветом.
Если использовать операцию Insert (Включение) при уже выведенном шаблоне матрицы, то матрица расширяется и ее размер увеличивается. Кнопка Delete (Стирание) позволяет убрать расширение матрицы, вычеркнув из нее строку или столбец.
Каждый элемент матрицы характеризуется индексированной переменной, и его положение в матрице обозначается двумя индексами: один указывает номер строки, другой номер столбца. Для набора индексированной переменной прежде надо ввести имя переменной, а затем перейти к набору индексов нажатием клавиши, вводящей символ]. Прежде указывается индекс строки, а затем через запятую индекс столбца. Примеры вывода индексированных переменных (элементов матрицы М) также даны на рис. 5. 14.
Вырожденная в одну строку или в один столбец матрица является вектором. Его элементы индексированные переменные с одним индексом. Нижняя граница индексов задается значением системной переменной ORIGIN. Обычно ее значение задают равным 0 или 1.