Top-office11.ru

IT и мир ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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 .

SciPy, ввод и вывод в MATLAB

SciPy (произносится как сай пай) — это пакет прикладных математических процедур, основанный на расширении Numpy Python. С SciPy интерактивный сеанс Python превращается в такую же полноценную среду обработки данных и прототипирования сложных систем, как MATLAB, IDL, Octave, R-Lab и SciLab. В этом посте я хотел бы рассказать о возможностях пакета ввода/вывода scipy.io, который позволяет работать с файлами данных Octave и MATLAB.

Читать еще:  Dbnavigator delphi свойства

Введение

Для начала импортируем пакет scipy.io следующим образом:

Основные процедуры пакета scipy.io, которые позволяют работать с файлами MATLAB:

Чтобы не нарушать лицензионного соглашения MATLAB, работать будем в среде GNU Octave, которая имеет совместимые с MATLAB функции сохранения и загрузки. Введем в командной строке Octave:

Код для импорта MATLAB файла в Python:

Как видим, файл прочитан верно. Теперь рассмотрим экспорт из SciPy в MATLAB:

Импортируем Python файл в Octave:

Чтобы проверить содержимое файла MATLAB без чтения данных в памяти, используем команду whosmat:

Функция whosmat возвращает список кортежей, по одному для каждого массива (или другого объекта), который содержится в файле MATLAB. Каждый кортеж содержит имя, содержимое файла и тип данных.

Структуры MATLAB

Структуры MATLAB похожи на словари Python dicts. Отличие заключается в том, что именем поля обязательно должна быть строка. Значением поля может быть любой объект.
Вспомним, что MATLAB — акроним MATrix LABoratory. Т.к. основное назначение MATLAB — работа с матрицами, поэтому все объекты в ней — это матрицы. Даже одно число представляется в виде матрицы размера (1, 1).

Загрузим MATLAB структуру в Python:

В версиях SciPy от 0.12.0 структуры MATLAB возвращаются как структурированные массивы numpy. Названия полей массива numpy являются названием полей структуры MATLAB. Имена полей можно прочитать с помощью команды dtype, как в примере выше. Подробнее про типы данных structed arrays .

Таким образом, в MATLAB массив структур имеет размер как минимум 2D, что повторяется при чтении в SciPy. Чтобы сократить размерность до 1, используем параметр squeeze_me:

Иногда удобнее загружать структуры MATLAB как объекты python, а не numpy массивы. Чтобы это сделать, используйте параметр struct_as_record = False для загрузки.

Параметр struct_as_record = False прекрасно работает совместно с параметром squeeze_me:

Самый простой способ экспорта структур из python в MATLAB — с помощью словарей dicts:

В MATLAB загружается как:

Также можно экспортировать структуры из python в MATLAB с помощью массивов numpy:

Массивы ячеек (cell) MATLAB

Массивы ячеек (cell) в MATLAB похожи на списки python. Элементы в массивах ячеек могут содержать любой тип объекта MATLAB. Также cell очень похожи на массивы объектов numpy. Рассмотрим пример экспорта cell из MATLAB в numpy.

Вернемся к Python:

Экспорт из numpy в массив cell MATLAB сделаем c помощью numpy-массива объектов:

Проверим правильность экспорта cell из numpy в Octave:

На этом, пожалуй, закончим. Надеюсь для кого-то эта статья послужит поводом для интеграции исследований в MATLAB со свободным программным обеспечением.
Источник: Документация scipy

Документация

Создание массивов строк

Строковые массивы были введены в 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

    Юлия Денисьева 3 лет назад Просмотров:

1 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ им. Р. Е. АЛЕКСЕЕВА» КАФЕДРА «КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ В ПРОЕКТИРОВАНИИ И ПРОИЗВОДСТВЕ» РАБОТА С МАССИВАМИ В СЕДЕ MATLAB ЛАБОРАТОРНАЯ РАБОТА по дисциплине «Математический аппарат динамических систем» для магистрантов очной формы обучения по направлениям подготовки. «Конструирование и технология радиоэлектронных средств». «Инфокоммуникационные технологии и системы связи». «Радиотехника» (профиль подготовки «Техника СВЧ и антенны»), по дисциплине «Модели динамических систем для магистрантов очной формы обучения по направлению подготовки 9.. «Информационные системы и технологии» Нижний Новгород

3 Составитель Кукушкин А.В. УДК 68 Работа с массивами в среде MATLAB: лаб. работа по дисциплине «Математический аппарат динамических систем» для магистрантов очной формы обучения по направлениям подготовки. «Конструирование и технология радиоэлектронных средств». «Инфокоммуникационные технологии и системы связи». «Радиотехника» (профиль подготовки «Техника СВЧ и антенны»), по дисциплине «Модели динамических систем для магистрантов очной формы обучения по направлению подготовки 9.. «Информационные системы и технологии», Нижегородский Государственный технический университет им. Р. Е. Алексеева, 7 с. Нижегородский государственный технический университет им. Р.Е. Алексеева, Кукушкин А. В.,

5 . Цель работы Целью работы является приобретение навыков работы с массивами в программной среде MatLab, т.к. все данные в MatLab представляются и хранятся в виде массивов. В работе изучаются операции и вычисления с векторами (одномерные массивы) и матрицами (двумерные массивы).. Краткие сведения из теории Массив с присвоенным ему именем упорядоченная, пронумерованная совокупность однородных данных [, ]. Массивы различаются по числу измерений: одномерные, двумерные и многомерные. Размером массива называют число элементов по каждому измерению. Доступ к элементам осуществляется с помощью индекса (нумерация элементов начинается с индекса, равного единице). Если вектор (векторстрока или вектор-столбец), матица или тензор являются математическими понятиями (объектами), то одномерные, двумерные и многомерные массивы это способы хранения или представления этих объектов в компьютере.. Задания к работе и порядок ее выполнения Работа выполняется в командной строке (в консоли) пакета MatLab по инструкциям, приведенным в описании. Контрольные задания следуют по тексту описания.. Одномерные массивы. Умножение векторов Векторы можно перемножать между собой скалярно, векторно или образовывать так называемое «внешнее произведение». В первом случае образуется скаляр (число), во втором вектор и в третьем матрица. Скалярное произведение двух векторов, хранящихся в массивах a, b с длиной N, определяется формулой N a b a b k k. Поэтому используется поэлементное перемножение массивов, т. е. если

6 a. 7 b то в командной строке нужно набрать: >> a=[.; -.;.7]; >> b=[.; 6.; -.9]; >> s=sum(a.*b) Для вычисления модуля (длины) вектора a набираем команду >> d=sqrt(sum(a.*a)) Векторное произведение определено только в трехмерном пространстве и его результатом будет также трехмерный вектор. Для этого в MATLAB имеется команда cross. >> a=[.; -.;.7]; >> b=[.; 6.; -.9]; >> c=cross(a,b) Задание: для тренировки вычислите a b b a. Вы должны получить трехмерный вектор с тремя нулевыми компонентами. Смешанное произведение трех векторов a b c дает объем параллелепипеда, построенного на этих векторах как на гранях. Задание: задайте три соответствующих векторных массива по своему усмотрению и используя команду >> V=abs(sum(a.*cross(b,c))) вычислите значение соответствующего объема. «Внешним» произведением векторов с длинами N и M является матрица размера M N, где вычисление элементов проводится по правилам матричного умножения, для чего служит команда >> c=a*b «Звездочка» служит оператором матричного умножения, а «апостроф» транспонирует матрицу b. Задание: проделайте самостоятельно соответствующие упражнения с векторами a и b различной длины.,

7 Используйте далее команду whos для просмотра переменных рабочей среды. Двумерные массивы. Матрицы. Ввод матриц. Простейшие операции. Матрицу A можно рассматривать как вектор-строку из трех элементов, каждый из которых является вектор-столбцом длиной два, либо как вектор-столбец из двух элементов, каждый из которых суть вектор-строка длиной три. Следовательно, для ее введения можно использовать де команды >> A=[[;] [;] [-;]] >> A=[ -; ] Другой способ набора состоит в следующем. Начните набирать в командной строке (используя для перехода к следующей строке клавишу «Enter»), >> B=[ 7 — ] нажав после замыкающей квадратной скобки клавишу «Enter», вы получите результат: B 7 Сложение и вычитание матриц происходит поэлементно с использованием обычных алгебраических команд, поэтому нужно следить за совпадением размерностей матриц. Наберите сначала матрицу С такой же размерности, что и матрица А, и сложите их, проверив полученный результат.

Читать еще:  Delphi mysql подключение к бд

8 6 >> C=[[;] [-;] [7;]]; >> S=A+C Для умножения матриц предназначена «звездочка» >> P=C*B P = Умножать матрицу на число можно также, используя «звездочку». >> P=A* (или P=*A) Транспонирование матрицы, как и вектора, производится при помощи команды. символ означает комплексное сопряжение. Для вещественных матриц эти операции приводят к одинаковым результатам. >> B’ ans = >> B.’ ans = Сопряжение и транспонирование матриц, содержащих комплексные числа, приведут к созданию разных матриц. >> K=[-i,+i;-i,-9i]

9 K =. -.i. +.i. -.i. — 9.i >> K’ ans =. +.i. +.i. -.i. + 9.i >> K.’ ans =. -.i. -.i. +.i. — 9.i Возведение квадратной матрицы в целую степень производится при помощи оператора ^. >> B=B^ B = Задание: найдите значение следующего выражения A C B A C T где верхний индекс Т означает транспонирование. Поскольку вектор-столбец или вектор-строка в MATLAB являются матрицами, у которых один из размеров равен единице, то вышеописанные операции применимы и к перемножению матриц с векторами. Задание: вычислите выражение, 7

10 Решение систем линейных алгебраических уравнений При помощи алгебраических операций с матрицей и вектор-столбцом в MATLAB можно решать системы линейных алгебраических уравнений. Решим систему с тремя неизвестными.x.x.x.; x.x.x..9; ().9x.7x.6x.. Задание: введите матрицу коэффициентов системы () в массив А, для вектора коэффициентов правой части системы используйте массив b. Решите систему при помощи символа 8 >> x=ab Проверьте правильность результата, умножив А на x. Считывание и запись данных Часто требуется найти решение системы, состоящей из большого числа линейных уравнений, причем матрица и вектор коэффициентов системы хранятся в файлах. Перед нами стоит задача решить систему, матрица и правая часть которой хранятся в текстовых файлах matr.txt, rside.txt, и записать результат в файл sol.txt. Матрица записана в файле построчно, элементы в строке отделены пробелом, вектор правой части записан в столбик. Задание: подготовьте файлы с данными системы () в стандартной программе Windows Блокнот (NotePad). Скопируйте файлы matr.txt, rside.txt в подкаталог work основного каталога MATLAB. Для считывания из файла используйте команду load,

11 для записи save. Формат вызова этих команд с выходными аргументами: >>A=load( matr.txt ); >>b=load( rside.txt ); >>x=ab; >>save sol.txt x ascii Параметр ascii означает запись в текстовом формате. После выполнения этих команд в каталоге work создается файл sol.txt, в котором в столбик записано решение системы. Посмотреть содержимое файла можно, используя любой текстовый редактор. Запись с двоичной точностью требует команды save sol.txt x ascii double. Аналогично можно записать и содержимое массива матрицы А в текстовый файл. Командой >> save sol.txt A ascii массив матрицы A записывается в файл matra.txt. Блочные матрицы. Часто в приложениях возникают матрицы, составленные из непересекающихся блочных матриц. Соответствующие размеры блоков должны совпадать. Введите матрицы A B C D и создайте из них блочную матрицу K A C B D >> A=[- ;- ]; >> B=[ ; ]; >> C=[ -;- ]; 9

12 >> D=[8 9; ]; >> K=[A B;C D] K = Составьте блочную матрицу где a S K, b. S a b Заполнение матриц при помощи индексации и создание матриц специального вида Сгенерируем матрицу Генерация матрицы осуществляется в три этапа. T. Создание массива Т размером пять на пять, состоящего из нулей.. Заполнение первой строки единицами.. Заполнение части последней строки минус единицами до последнего элемента..

13 Доступ к элементам матриц осуществляется при помощи аргумента, состоящего из двух индексов номеров строки и столбца. Например, >>A(,) вызывает элемент матрицы А, стоящий во второй строке и третьем столбце. Поэтому команды для генерации матрицы Т будут иметь вид >> A(. )= A = >> A(,:)= A = >> A(end,:end)=- A =

14 — — — Создание некоторых специальных матриц в осуществляется при помощи встроенных функций. MATLAB Заполнение прямоугольной матрицы нулями проводится обращением к встроенной функции zeros, аргументами которой является число строк и столбцов матрицы. >> A=zeros(,6) A = >> A=zeros() A = Единичная матрица генерируется функцией eye. Примеры: >> I=eye() I = >> I=eye(,8) I =

15 Матрица, состоящая из одних единиц, вызывается функцией ones: >> E=ones(,) E = Функция rand вызывает матрицу, заполненную случайным образом числами от нуля до единицы, функция randn создает матрицу чисел, распределенных по нормальному закону. >> R=rand(,) R = >> RN=randn(8) RN =

16 Функция diag формирует диагональную матрицу из векторстолбца или вектор-строки, располагая их элементы по диагонали. Для заполнения не главной, а побочной диагонали предусмотрена возможность вызова этой функции с двумя аргументами. Примеры: >> d=[ ]; >> D=diag(d) D = >> d=[;]; >> D=diag(d,) D = >> D=diag(d,-)

17 D = Подумайте, почему в двух последних случаях не указывается размер матрицы? Функция diag служит и для выделения диагонали матрицы в вектор, например >> A=[ ; ; 7]; >> d=diag(a) d = 7 Задание: заполните и запишите в файлы следующие матрицы.. G M

18 ..6. Поэлементные операции с матрицами Поэлементные операции с матрицами проводятся обычным образом, т.е. с использованием «точки» перед соответствующим оператором. Например, умножение первой матрицы на вторую (разумеется, того же размера!) производится оператором.*, деление элементов первой матрицы на соответствующие элементы второй производится с помощью оператора./, наоборот, деление элементов второй матрицы на элементы первой проводится оператором.. Введите две матрицы A 9 B 7 8. Проделайте с ними операции: >>C=A.*B >>R=A./B >>R=A.B >>P=A.^ >>PB=A.^B () Выведите последний результат в «длинном» формате, используя команду format long >> format long >>PB Обратите внимание, что повторного вычисления матрицы PB не потребовалось, так как все вычисления всегда ведутся с двойной точностью.. Контрольные вопросы.. Объясните, почему в отличие от операций сложения и вычитания можно и нужно перемножать матрицы разной 6

19 размерности. Какие параметры размерностей перемножаемых матриц должны совпадать, чтобы избежать ошибки. Объясните, почему операцию «возведение в степень» можно проводить только с квадратными матрицами и целыми степенями. Что сделал MATLAB в примере ()?. Список литературы ) Дьяконов В.П. MATLAB 6/6./6. + Simulink /. Основы применения. Полное руководство пользователя, / В.П. Дьяконов. М.: СОЛОН-Пресс,. 768с. ) Мэтьюз Д. Г. Численные методы. Использование MATLAB: [пер. с англ.], / Д. Г. Мэтьюз, К. Д. Финк. М.: Изд. дом «Вильямс»,. 7с. ) Теория аналитических функций. Аспекты приложений, / Л.В. Широков и др. Арзамас, АГПИ, 7. 87с. ) Свешников А.Г. Теория функций комплексного переменного, / А.Г. Свешников, А.Н., Тихонов М.: Наука, 979. ) Бейтмен Г. Высшие трансцендентные функции. Т., / Г. Бейтмен, А. Эрдейи. M.: Наука,

Ссылка на основную публикацию
Adblock
detector