Как добавить столбец в матрицу mathcad
Mathсad имеет более 50 функций, предназначенных для работы с векторами и матрицами. Все функции можно разбить на группы по их функциональному назначению. Например, функции, предназначенные для создания матриц общего и специального вида, редактирования и преобразования матриц, функции, определяющие параметры матриц и т. д. Рассмотрим часть этих функций, которые имеют наибольшее прикладное значение.
Среди функций, предназначенных для создания матриц, следует выделить функцию matrix(L,N,f), где L – число строк матрицы, N – число столбцов матрицы, f – функция f(l,n) при . Другая функция из этой группы identity(n). Функция предназначена для создания единичной матрицы размерности n. Следующая функция geninv(M) позволяет осуществить обращение матрицы M, аналогично операции M -1 .
Для определения размерности матрицы в Mathcad предназначены функция rows(M), определяющая число строк матрицы M, и функция cols(M), определяющая число колонок матрицы M.
Сортировку элементов матрицы осуществляют две функции csort(M,i), rsort(M,j). Функция csort(M,i) обеспечивает сортировку по возрастанию элементов i – го столбца путем перестановки строк, а функция rsort(M,j) – сортировку по возрастанию элементов j –ой строки путем перестановки столбцов.
Для определения минимального и максимального элемента матрицы используются функции min(M) и max(M).
Выделить произвольную подматрицу из матрицы М в Mathcad можно посредством функции submatrix (M, r1, r2, c1, c2), где М – исходная матрица, r1 и r2 –нижний и верхний номер строки матрицы М, включаемых в результирующую подматрицу, а с1 и с2 – нижней и верхний номер столбца матрицы М, включаемых в результирующую подматрицу. Слияние матриц можно осуществить, используя функции augment(A,B,…) и stack(A,B,…). Функция augment(A,B,…) предназначена для слияния матриц А, В и т.д. слева направо. Причем количество строк в матрицах должно быть одинаково. Вторая функция stack(A,B,…) выполняет слияние матриц сверху вниз. Количество столбцов в матрицах должно быть также одинаково. Данные функции могут быть применены и к векторам. На листинге приведен пример использования рассмотренных матричных функций.
Работа с матрицами
Векторы и матрицы рассматриваются в программе MathCad как одномерные и двумерные массивы данных. Число строк и столбцов матрицы задается в диалоговом окне Insert Matrix (Вставка матрицы), которое открывают командой Insert > Matrix (Вставка > Матрица). Вектор задается как матрица, имеющая один столбец.
После щелчка на кнопке ОК в формулу вставляется матрица, содержащая вместо элементов заполнители. Вместо каждого заполнителя надо вставить число, переменную или выражение.
Для матриц определены следующие операции: сложение, умножение на число, перемножение и прочие. Допустимо использование матриц вместо скалярных выражений: в этом случае предполагается, что указанные действия должны быть применены к каждому элементу матрицы, и результат также представляется в виде матрицы. Например, выражение М+ 3, где М — матрица, означает, что к каждому элементу матрицы прибавляется число 3. Если требуется явно указать необходимость поэлементного применения операции к матрице, используют знак векторизации, для ввода которого служит кнопка Vectorize (Векторизация) на панели инструментов Matrix (Матрица). Например:
Для работы с элементами матрицы используют индексы элементов. Нумерация строк и столбцов матрицы начинается с нуля. Индекс элемента задается числом, переменной или выражением и отображается как нижний индекс. Он вводится после щелчка на кнопке Subscript (Индекс) на панели инструментов Matrix (Матрица). Пара индексов, определяющих элемент матрицы, разделяется запятой. Иногда (например, при построении графиков) требуется выделить вектор, представляющий собой столбец матрицы. Номер столбца матрицы отображается как верхний индекс, заключенный в угловые скобки, например М. Для его ввода используется кнопка Matrix Column (Столбец) на панели инструментов Matrix (Матрица). Чтобы задать общую формулу элементов матрицы, типа МI,J:= i +j, используют диапазоны. Диапазон фактически представляет собой вектор, содержащий арифметическую прогрессию, определенную первым, вторым и последним элементами. Чтобы задать диапазон, следует указать значение первого элемента, через запятую значение второго и через точку с запятой значение последнего элемента. Точка с запятой при задании диапазона отображается как две точки (..). Диапазон можно использовать как значение переменной, например x:= 0,0.01.. 1.
Если разность прогрессии равна единице (то есть, элементы просто нумеруются), значение второго элемента и соответствующую запятую опускают. Например, чтобы сформировать по приведенной выше формуле матрицу размером 6х6, перед этой формулой надо указать
i:= 0..5 j:= 0..5. При формировании матрицы путем присвоения значения ее элементам, размеры матрицы можно не задавать заранее. Всем неопределенным элементам автоматически присваиваются нулевые значения. Например, формула М5,5:=1 создает матрицу М размером 6х6, у которой все элементы, кроме расположенного в правом нижнем углу, равны 0.
Решение уравнений и систем
Для численного поиска корней уравнения в программе MathCad используется функция root. Она служит для решения уравнений вида f(x) = 0, где f (х) — выражение, корни которого нужно найти, a x — неизвестное. Для поиска корней с помощью функции root, надо присвоить искомой переменной начальное значение, а затем вычислить корень при помощи вызова функции: root(f(x),x). Здесь f(x) — функция переменной х, используемой в качестве второго параметра. Функция root возвращает значение независимой переменной, обращающее функцию f(x) в 0. Например:
Если уравнение имеет несколько корней (как в данном примере), то результат, выдаваемый функцией root, зависит от выбранного начального приближения. Если надо решить систему уравнений (неравенств), используют так называемый блок решения, который начинается с ключевого слова given (дано) и заканчивается вызовом функции find (найти). Между ними располагают «логические утверждения», задающие ограничения на значения искомых величин, иными словами, уравнения и неравенства. Всем переменным, используемым для обозначения неизвестных величин, должны быть заранее присвоены начальные значения.
Чтобы записать уравнение, в котором утверждается, что левая и правая части равны, используется знак логического равенства — кнопка Boolean Equals (Логически равно) на панели инструментов Evaluation (Вычисление). Другие знаки логических условий также можно найти на этой панели. Заканчивается блок решения вызовом функции find, у которой в качестве аргументов должны быть перечислены искомые величины. Эта функция возвращает вектор, содержащий вычисленные значения неизвестных.
Глава7операции с векторами и матрицами, матричные функции в математическом пакете mathcad
Матричное исчисление играет важную роль в компьютерной математике. Практически все численные методы на том или ином этапе работы своего алгоритма сводятся к решению систем линейных алгебраических уравнений (СЛАУ), которое часто производится матричными методами. Вообще говоря, нельзя назвать ни одной области использования компьютера, в алгоритмах которой (в большей или меньшей степени) не использовались бы матрицы.
Понятие «вектор» обычно не отделяют от понятия «матриц». Векторы могут рассматриваться как матрицы, состоящие из одного столбца (или строки).
Матричные вычисления в MathCAD можно условно разделить на три основных типа.
К первому относятся такие элементарные действия над матрицами, как создание, извлечение из них данных, их умножение, сложение или скалярное произведение (в случае векторов). Для их реализации служат специальные операторы трех панелей семейства Math (Математические): Calculator (Калькулятор), Matrix (Матричные) и Symbolics (Символьные).
Ко второму типу можно отнести те матричные преобразования, которые требуют использования специальных функций и встроенных алгоритмов матричной алгебры, таких как, например, функции вычисления определителя, матричных норм или сортировки элементов векторов по возрастанию. Функции этой группы можно найти в категории Vector and Matrix (Векторные и матричные) у мастера функций.
И, наконец, к третьему типу матричных вычислений следует отнести те задачи, решить которые можно только используя возможности системы программирования MathCAD.
В языках программирования начальные индексы массивов обычно равняются 0. По умолчанию в MathCAD индексы строк и столбцов также отсчитываются с 0. В том случае, если такая система вам неудобна или непривычна, можно изменить точку отсчета индексов на 1, задав системную переменную ORIGIN: ORIGIN:= 1.
Доступ к элементам вектора или матрицы осуществляется с помощью индексированных переменных. Например, чтобы использовать пятый элемент вектора с именем А, нужно записать этот элемент в виде: . А для того, чтобы взять элемент матрицы В, расположенный на пересечении 3-ей строчки и 4-го столбца нужно записать: .
Для задания индексов на панели Matrix предусмотрена специальная кнопка Subscript (Индекс). Перейти к записи индекса можно также с помощью клавиши «[» ( левая квадратная скобка). Нажав ее, вы увидите, что на месте будущего индекса, чуть ниже текста имени матрицы, появится черный маркер. В него через запятую следует ввести значения индексов. На первом месте при этом должен стоять номер строки, а на втором – столбца.
7.1. Создание векторов и матриц
В системе предусмотрены различные возможности задания векторов и матриц:
Определение матрицы последовательным заданием каждого элемента.
С помощью индексированных переменных.
С помощью использования команды Insert→Matrix, либо с помощью соответствующей кнопки панели Matrix.
Задание с помощью элементов программирования.
Применение встроенных функций.
Через связь с другим приложением, например Excel.
Создание таблицы данных.
Чтение из внешнего файла.
Рассмотрим некоторые из них. Определение матрицы последовательным заданием каждого элемента очевидно и не требует пояснений. При создании матрицы или вектора с помощью индексированной переменной следует исходить из того, что любая индексированная переменная, индексами которой являются переменные, принимающие целочисленные значения из некоторого промежутка, уже представляют собой вектор или матрицу.
Пример 1. Требуется сформировать вектор x, состоящий из 6 элементов. Элементам этого вектора присвоить значения индексов.
Решение. Предоставим два варианта решения этой задачи:
с помощью индексированной переменной;
с помощью команды Insert→Matrix.
Для того, чтобы сформировать вектор, воспользуемся вспомогательной переменной, которая будет играть роль индекса (например, i), а затем будем использовать эту переменную для здания элементных значений вектора x. Формирование вектора представлено на рис. 7.1.
Рис. 7.1. Формирование вектора с использованием индексированной переменной
Формирование вектора х будем производить с помощью команды Matrix. Для этого сначала напишем оператор присваивания: «х:=» , а затем выполним команду Matrix. Эта команда открывает диалоговое окно«Insert Matrix», которое представлено на рис. 7.2, в котором необходимо указать число строк и число столбцов. В нашем примере число строк равно 6, а число столбцов равно 1.
После нажатия кнопки «Ok» команда предоставит шаблон с шестью ячейками, в которые следует вписать значения элементов вектора.
Рис. 7.2. Вызов диалогового окна «Insert Matrix» для создания матрицы с помощью команды «Matrix»
Пример 2. В файле с именем «int(4_4).txt» записаны числа в виде матрицы четыре строчки по четыре элемента, разделенными пробелами. В файле с именем «int(4_1).txt» записаны числа в столбик. Требуется прочитать эти данные в матрицу Q и вектор P.
Решение. Для чтения данных из файла в матрицу/вектор можно воспользоваться функцией READPRN, которая имеет один параметр — имя файла. Фрагмент с решением представлен на рис. 7.3.
Рис. 7.3. Чтение данных из файлов
С матрицами могут производиться как численные, так и символьные вычисления. Операции с матрицами в системе MathCAD обозначаются так, как это принято в математике: —, +, *, … .
На рис. 7.4 показано назначение некоторых специализированных команд, расположенных на панели инструментов Matrix.
Помимо этого, система MathCAD представляет большое количество функций для работы с векторами и матрицами. Воспользоваться этими функциями можно с помощью мастера функций f(x).
Х -1 – получить обратную матрицу
|X| – вычислить детерминант
М Т – транспонировать
М < >– из матрицы взять вектор-столбец
v – получить сумму элементов
–скалярное произведение векторов
–векторное произведение векторов
Рис. 7.4. Назначение некоторых команд, расположенных на панели инструментов «Matrix»
На рис. 7.5 представлены вычисления с использованием операций над матрицами.
Рис. 7.5. Примеры матричных вычислений в MathCAD
Пример 3. Требуется сформировать диагональную квадратную матрицу с(6×6). Значения элементов главной диагонали должны совпадать с номером строки/столбца.
Решение. Для получения диагональной матрицы в системе предусмотрена функция diag, которая имеет один параметр – вектор диагональных элементов. Поэтому формирование матрицы начнем с создания вспомогательного вектора, в который занесем элементы для диагонали. Для формирования этого вспомогательного вектора (например, с именем s), воспользуемся вспомогательной переменной, которая будет играть роль индекса (например, i). Тогда формирование диагональной матрицы может быть получено в результате операций, как это показано на рис. 7.6.
Рис. 7.6. Формирование диагональной матрицы
Пример 4. Даны две матрицы: А(4×3) и В(4×2). Требуется объединить эти матрицы в одну матрицу С(4×5), причем, первыми столбцами новой матрицы должны быть столбцы матрицы А, а справа от этих элементов следовать столбцы матрицы В (методом «дописывания справа»).
Решение. Для соединения двух матриц в одну матрицу можно использовать функцию augment, параметрами которой будут являться имена соединяемых матриц, как это показано на рис. 7.7.
Рис. 7.7. Объединения двух матриц по правилу «дописывания справа»
Пример 5. Даны две матрицы: А(2×3) и В(3×3). Требуется объединить эти матрицы в одну матрицу С(5×3), причем, в новой матрицы в качестве первых строк должны быть строки матрицы А, а за ними должны следовать строки матрицы В.
Решение. Для соединения двух матриц в одну матрицу по правилу «друг под другом» можно использовать функцию stack, параметрами которой будут являться имена соединяемых матриц, как это показано на рис. 7.8.
Рис. 7.8. Объединения двух матриц по правилу «друг под другом»
Пример 6. Дана матрица А(6×6). Требуется получить из этой матрицу подматрицу, в которую включить элементы, расположенные в строках, начиная с номера 2-го по номер 4-ый, и столбцах, начиная с номера 0-го по номер 5-ый.
Решение. Для выделения подматрицы с номерами столбцов и строк представленными граничными значениями предусмотрена функция submatrix. Эта функция имеет 5 параметров: имя матрицы, из которой производится выбор; начальный номер строки выбора; конечный номер строки выбора; начальный номер столбца выбора; конечный номер столбца выбора. Возможное решение представлено на рис. 7.9.
Рис. 7.9. Выделение подматрицы из заданной матрицы
Пример 7. Дана матрица А(6×6). Требуется получить из этой матрицу два вектора. Первый вектор должен совпадать с 4–ым столбцом матрицы А, а второй – с 3-ей строкой матрицы А.
Решение. Для получения векторных значений можно воспользоваться командой М (из матрицы взять вектор-столбец), которая расположена на панели «Мatrix». Для получения первого вектора эту команду нужно применить непосредственно к матрице А, а для получения второго вектора нужно сначала получить из матрицы А транспонированную матрицу, а только потом воспользоваться командой «взять столбец». Возможное решение представлено на рис. 7.10.
Рис. 7.10. Выделение векторных значений из заданной матрицы
Пример 8. Из матрицы А(6×6) выделить минор, который образуется в результате вычеркивания из этой матрицы нулевой строчки и третьего столбца.
Решение. Решение задачи можно свести к соединению двух подматриц, выделенных из матрицы А, как это показано на рис. 7.11.
MathCAD — это просто! Часть 11. Продолжаем работать с матрицами
Матрицы — вещь важная, а потому было бы просто непростительно отводить на них всего одну статью из нашего цикла о работе в среде MathCAD. Узнав о том, как можно транспонировать матрицы, вычислять определители, обратные матрицы, а также перемножать и складывать их, сегодня мы с вами продолжим издевательства над этими важными в математике объектами. Думаю, что изложенные ниже сведения будут полезны и в практических вычислениях, производимых в среде MathCAD, ведь матрицы очень часто встречаются в реальных задачах.
Еще о вспомогательных функциях
В прошлый раз мы немного поговорили о специальных MathCAD’овских функциях, позволяющих разрезать матрицы на составные части или же склеивать их. Это не единственные из вспомогательных функций, действующих над матрицами, которые могут пригодиться в практике повседневной работы. Пришло время познакомиться с некоторыми другими функциями, которые также имеют неплохой шанс оказаться весьма и весьма полезными. Особую роль в матричном исчислении играют единичные матрицы. На всякий случай напомню, что единичной называется такая матрица, у которой все недиагональные элементы равны нулю, а элементы, расположенные на главной диагонали (от верхнего левого угла к нижнему правому), равны единице. Единичные матрицы могут иметь самые разные размеры. Чтобы пользователь не тратил свое время на вбивание нулей и единиц в строки и столбцы такой матрицы, в MathCAD’е имеется специальная функция Identity, создающая единичную матрицу заданного размера. У этой функции есть единственный аргумент, задающий размерность матрицы.
Еще она по своему действию довольно близкая к Identity функция называется Diag. Она создает не матрицы, а векторы, состоящие из диагональных элементов квадратных матриц (т.е. из тех элементов, которые стоят на ее главной диагонали). Стоит при этом отметить, что размер вектора, получаемого на выходе, автоматически определяется размером входной матрицы.
Для определения размера матриц можно использовать функции Rows и Cols. Каждая из них имеет один-единственный входной параметр, которым является сама матрица, а на выходе выдают значения числа строк и столбцов соответственно. Для определения размера вектора можно использовать функцию length, которая работает аналогично указанным для матриц функциям.
Интересной также является предоставляемая MathCAD’ом функция для сортировки элементов векторов. Называется она просто и незатейливо — Sort. В качестве входного параметра этой функции нужно передать вектор, сортировкой которого мы будем заниматься, и на выходе получим почти такой же вектор, только его элементы будут упорядочены по возрастанию. Для сортировки строк и столбцов матрицы можно воспользоваться соответственно функциями Rsort и Csort, которым нужно передать в качестве параметров саму матрицу и номер того столбца или строки, которые должны быть отсортированы. Правда, работают эти функции несколько загадочно, иногда сортируя не только нужный столбец (строку), но и все остальные (см. соответствующую иллюстрацию). Чтобы изменить порядок следования чисел в векторе или порядок строк в матрице на противоположный, нужно воспользоваться функцией Reverse, в качестве аргумента для которой нужно передать изменяемые матрицу или вектор.
Ранг и норма матрицы
Два фундаментальных понятия, играющих очень важную роль в линейной алгебре — это ранг и норма матрицы. MathCAD позволяет пользователю вычислять эти характеристики матриц без лишних усилий, и сейчас я расскажу, как именно это делается.
Минором матрицы порядка k называется определитель, вычисленный для матрицы, образованной из k столбцов и k строк данной матрицы. Главным минором называется минор, для которого номера выбранных столбцов совпадают с номерами выбранных строк. Понимаю, это определение звучит несколько громоздко, но я думаю, если вы прочитаете его внимательно еще раз, то все станет просто и понятно. Рангом матрицы называется наибольший порядок среди всех ее ненулевых миноров. Ранг матрицы характеризует число линейно независимых столбцов или строк матрицы, а потому в матричной алгебре эта характеристика используется весьма широко. Для вычисления ранга матрицы в MathCAD’е используется функция Rank, которой в качестве аргумента передается та самая матрица, ранг которой нужно вычислить.
Норма матрицы — понятие более расплывчатое, чем ранг. Для полного определения нормы матрицы используется система ограничений, которым должен подчиняться строящийся по определенным правилам функционал. Вы можете найти подробное определение нормы матрицы в любом учебнике по линейной алгебре. Мы же сейчас удовлетворимся знанием того, что норма матрицы — это некоторый аналог величины, который для векторов называют длиной (норма вектора как раз и есть его длина). Впрочем, в отличие от длины вектора, где все понятно и определенно, норма матрицы может вычисляться несколькими разными способами, и в зависимости от способа вычисления ее величина может быть различной. Всем функциям для вычисления нормы матрицы, о которых здесь идет речь, требуется в качестве аргумента передавать ту матрицу, для которой будет вестись вычисление нормы. Функция Norm1 определяет норму путем складывания модулей элементов для каждого из столбцов и выбором наибольшей из получившихся для столбцов сумм. Функция Normi работает аналогичным образом, только для вычисления сумм там используются не столбцы, а строки. Функция Norme вычисляет норму матрицы по тому же алгоритму, по какому вычисляется норма вектора: квадраты всех элементов матрицы суммируются, а затем из полученного числа извлекается корень.
Собственные вектора и собственные значения матриц
Собственным вектором x и собственным значением ? матрицы X называются такие вектор и число соответственно, которые удовлетворяют соотношению xX = ?x. Обычно матрица имеет несколько собственных векторов и соответствующих им собственных значений, а потому мы будем рассматривать именно этот случай. Конечно, в MathCAD’е не слишком сложно с помощью некоторых преобразований рассчитать необходимые числа и вектора самостоятельно, однако можно еще больше упростить себе жизнь, воспользовавшись встроенными в эту среду функциями.
Функция Eigenvecs принимает в качестве входного параметра некоторую матрицу, а возвращает другую, содержащую собственные вектора исходной. При интерпретации результатов работы этой функции необходимо помнить, что в MathCAD’е вектора записываются в виде столбцов, так что и в этой матрице каждый из столбцов является собственным вектором первоначальной матрицы. Другая функция, Eigenvals, также принимает на вход некоторую матрицу, однако выдает для нее уже не собственные вектора, а собственные значения. Записываются они также в виде столбика. В этом столбце они идут в том же порядке, что и столбцы в матрице, возвращаемые первой функцией. То есть i-му столбцу матрицы, получаемой на выходе функцией Eigenvecs, соответствует i-е собственное значение в векторе. Впрочем, проследить соответствие собственных векторов и собственных значений для матрицы можно и более наглядным образом. Для этого существует специальная функция Eigenvec (не путайте с Eigenvecs), которой на вход передаются матрица и одно из ее собственных значений, а она уже вычисляет соответствующий этому собственному значению собственный вектор.
Скалярное и векторное произведение векторов
Напоследок поговорим о вещах довольно простых, но очень распространенных в практике решения задач, а потому особенно важных. Сейчас мы рассмотрим, как с помощью MathCAD’а вычислять скалярное и векторное произведение векторов. Напомню, что скалярным произведением x.y называется число, равное x0y0 + x1y1 + x2y2 + … + xnyn, а вот с векторным все несколько сложнее. Оно определяется только для трехмерных векторов и вычисляется как определитель матрицы, составленной из базисных векторов (i, j и k) и элементов тех векторов, для которых вычисляется векторное произведение. Традиционно в математике векторное произведение обозначают c помощью крестика, который ставится между двумя перемножаемыми векторами.
Для вычисления скалярного и векторного произведения векторов обратимся снова к панели матричных вычислений, неоднократно выручавшей нас в наших упражнениях с MathCAD’ом. Скалярное произведение называется на ней Dot Product и обозначается как точка между двумя векторами, а векторное — Cross Product и обозначается крестиком, как я уже говорил выше. Чтобы перемножить два вектора, вы можете сначала обозначить их с помощью каких- либо символьных обозначений, а можете сразу записывать произведения между столбцами чисел.
Теперь, пожалуй, о матрицах самое основное и важное сказано. Как видите, в плане работы с векторами и матрицами MathCAD ничуть не менее мощный, чем во всем остальном. Поэтому использовать эту среду для матричных вычислений можно и нужно. Ну а как это делать, вы теперь уже знаете.
Похожие публикации:
- Где в snapchat сохраняются фото
- Где находится знак принадлежит в mathcad
- Для чего нужно приложение hangouts на андроид и можно ли его удалить
- Как в archicad обрезать объект
Как добавлять ячейки, строки и столбцы в таблицу Word
Примечание: Word не вставляет новый столбец. В результате количество ячеек в строке может оказаться больше, чем в других строках.
Добавление строки сверху или снизу
- Щелкните ячейку, сверху или снизу которой нужно добавить строку.
- В разделе Работа с таблицами на вкладке Макет сделайте одно из следующего:
- Чтобы добавить строку над выделенной ячейкой, в группе Строки и столбцы нажмите кнопку Вставить сверху.
- Чтобы добавить строку под выделенной ячейкой, в группе Строки и столбцы нажмите кнопку Вставить снизу.
Совет: Чтобы вставить несколько строк (или столбцов) одновременно, выберем нужное количество строк или столбцов, прежде чем щелкать их. Например, чтобы вставить две строки над строкой, сначала выберите две строки в таблице и нажмите кнопку «Вставить сверху».
Добавление столбца слева или справа
- Щелкните ячейку, слева или справа от которой нужно добавить столбец.
- В разделе Работа с таблицами на вкладке Макет сделайте одно из следующего:
- Чтобы добавить столбец слева от выделенной ячейки, в группе Строки и столбцы нажмите кнопку Вставить слева.
- Чтобы добавить столбец справа от выделенной ячейки, в группе Строки и столбцы нажмите кнопку Вставить справа.
Контекстные вкладки «Работа с таблицами»
При настройке внешнего вида и структуры таблицы вам потребуются контекстные вкладки Конструктор и Макет группы Работа с таблицами. Вкладки Конструктор и Макет появляются вверху на ленте, если щелкнуть внутри таблицы.
Добавить строку или столбец с нулями в матрицу
Форумчане! Хочу добавить в матрицу столбцы или строки из нулей, чтобы сделать из прямоугольной квадратную. Выдает ошибку. Я неправильно делаю? Может есть вариант проще?
Вложения
3.rar (10.3 Кб, 5 просмотров) |
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Дана матрица n*m .Заполнить последнюю строку и столбец нулями. Вывести исходную матрицу и конечную
Дана матрица n*m .Заполнить последнюю строку и столбец нулями. Вывести исходную матрицу и конечную.
Заменить в матрице строку или столбец нулями
Здравствуйте, подскажите, как можно заменить цифры в строке или в столбце матрицы нулями, не.
Добавить в матрицу строку и столбец
Привет всем! Помогите, пожалуйста решить одну задачку. Один не справлюсь. Вот задача:
Добавить строку, столбец в двумерную матрицу
Дан двумерный массив целых чисел. Вставить в него: а) строку из нулей перед всеми строками, в.
Создание, конкатенация и расширение матрицы
Самая основная структура данных MATLAB® является матрицей. Матрица A является двумерным, прямоугольным массивом элементов данных, расположенных в строках и столбцах. Элементами могут быть числа, логические значения ( true или false ), даты и времена, строки или некоторый другой тип данных MATLAB.
Даже один номер хранится как матрица. Например, переменная, содержащая значение 100, хранится как матрица 1 на 1 типа double .
A = 100; whos A
Name Size Bytes Class Attributes A 1x1 8 double
Построение матрицы данных
Если у вас есть определенный набор данных, можно расположить элементы в матрице с помощью квадратных скобок. Одна строка данных имеет пробелы или запятые между элементами, а точка с запятой разделяет строки. Например, создайте одну строку четырех числовых элементов. Размер получившейся матрицы 1 на 4, поскольку она имеет 1 строку и 4 столбца. Матрица A этой формы часто упоминается как вектор-строка.
A = [12 62 93 -8]
A = 1×4 12 62 93 -8
sz = size(A)
sz = 1×2 1 4
Теперь создайте матрицу с теми же числами, но расположите их в двух строках. Эта матрица имеет две строки и два столбца.
A = [12 62; 93 -8]
A = 2×2 12 62 93 -8
sz = size(A)
sz = 1×2 2 2
Специализированные матричные функции
MATLAB имеет много функций, которые помогают создавать матрицы с определенными значениями или конкретной структурой. Например, zeros и ones функции создают матрицы всех нулей или всех единиц. Первые и вторые аргументы этих функций являются количеством строк и количеством столбцов матрицы, соответственно.
A = zeros(3,2)
A = 3×2 0 0 0 0 0 0
B = ones(2,4)
B = 2×4 1 1 1 1 1 1 1 1
diag функционируйте помещает входные элементы в диагональ матрицы. Например, создайте вектор-строку A содержащий четыре элемента. Затем создайте матрицу 4 на 4, диагональными элементами которой являются элементы A .
A = [12 62 93 -8]; B = diag(A)
B = 4×4 12 0 0 0 0 62 0 0 0 0 93 0 0 0 0 -8
Конкатенация матриц
Можно также использовать квадратные скобки, чтобы соединить существующие матрицы вместе. Этот способ создать матрицу называется конкатенацией . Например, конкатенируйте два вектора-строки, чтобы сделать еще более длинный вектор-строку.
A = ones(1,4); B = zeros(1,4); C = [A B]
C = 1×8 1 1 1 1 0 0 0 0
Располагать A и B как две строки матрицы, используйте точку с запятой.
D = [A;B]
D = 2×4 1 1 1 1 0 0 0 0
Чтобы конкатенировать две матрицы, у них должны быть совместимые размеры. Другими словами, когда вы конкатенируете матрицы горизонтально, у них должно быть одинаковое число строк. Когда вы конкатенируете их вертикально, у них должно быть одинаковое число столбцов. Например, горизонтально конкатенируйте две матрицы, что у обоих есть две строки.
A = ones(2,3)
A = 2×3 1 1 1 1 1 1
B = zeros(2,2)
B = 2×2 0 0 0 0
C = [A B]
C = 2×5 1 1 1 0 0 1 1 1 0 0
Альтернативный способ конкатенировать матрицы состоит в том, чтобы использовать функции конкатенации, такие как horzcat , который горизонтально конкатенирует две совместимых входных матрицы.
D = horzcat(A,B)
D = 2×5 1 1 1 0 0 1 1 1 0 0
Генерация числовой последовательности
colon удобный путь состоит в том, чтобы создать матрицы, элементы которых последовательны и равномерно расположены с интервалами. Например, создайте вектор-строку, элементами которого являются целые числа от 1 до 10.
A = 1:10
A = 1×10 1 2 3 4 5 6 7 8 9 10
Можно использовать оператор двоеточия, чтобы создать последовательность чисел в любой области значений, с единичным шагом.
A = -2.5:2.5
A = 1×6 -2.5000 -1.5000 -0.5000 0.5000 1.5000 2.5000
Чтобы изменить значение шага последовательности, задайте шаг между начальным и конечным значением области значений, разделенных двоеточиями.
A = 0:2:10
A = 1×6 0 2 4 6 8 10
Чтобы постепенно уменьшиться, используйте отрицательное число.
A = 6:-1:0
A = 1×7 6 5 4 3 2 1 0
Можно также постепенно увеличиться значениями нецелого числа. Если инкрементное значение равномерно не делит заданную область, MATLAB автоматически заканчивает последовательность в последнем значении, которого это может достигнуть прежде, чем превысить область значений.
A = 1:0.2:2.1
A = 1×6 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000
Расширение матрицы
Можно добавить один или несколько элементов в матрицу путем размещения их за пределами существующих контуров индекса строки и столбца. MATLAB автоматически заполняет матрицу нулями, чтобы сохранить его прямоугольным. Например, создайте матрицу 2 на 3 и добавьте дополнительную строку и столбец в него путем вставки элемента в (3,4) положение.
A = [10 20 30; 60 70 80]
A = 2×3 10 20 30 60 70 80
A(3,4) = 1
A = 3×4 10 20 30 0 60 70 80 0 0 0 0 1
Можно также расширить размер путем вставки новой матрицы за пределами существующих областей значений индекса.
A(4:5,5:6) = [2 3; 4 5]
A = 5×6 10 20 30 0 0 0 60 70 80 0 0 0 0 0 0 1 0 0 0 0 0 0 2 3 0 0 0 0 4 5
Расширять размер матрицы неоднократно, такой как в for цикл, обычно лучше предварительно выделить место для самой большой матрицы, которую вы ожидаете создавать. Без предварительного выделения MATLAB должен выделить память каждый раз увеличения размера, замедлив операции. Например, предварительно выделите матрицу, которая содержит до 10 000 строк и 10 000 столбцов путем инициализации ее элементов, чтобы обнулить.
A = zeros(10000,10000);
Если необходимо предварительно выделить дополнительные элементы позже, можно расширить его путем присвоения за пределами матричных областей значений индекса или конкатенировать другую предварительно выделенную матрицу к A .
Пустые массивы
Пустой массив в MATLAB является массивом по крайней мере с одной равной нулю длиной размерности. Пустые массивы полезны для представления концепции «ничего» программно. Например, предположите, что вы хотите найти все элементы вектора, которые меньше 0, но нет ни одного. find функция возвращает пустой вектор индексов, указывая, что она не могла найти элементы меньше чем 0.
A = [1 2 3 4]; ind = find(A<0)
ind = 1x0 empty double row vector
Много алгоритмов содержат вызовы функции, которые могут возвратить пустые массивы. Часто полезно позволить пустым массивам течь через эти алгоритмы как аргументы функции вместо того, чтобы обработать их как особый случай. Если действительно необходимо настроить обработку пустого массива, можно проверять на них использующий isempty функция.
TF = isempty(ind)
TF = logical 1
Похожие темы
- Индексация массива
- Изменение и реорганизация массивов
- Многомерные массивы
- Создание массивов строк
- Представление дат и времени в MATLAB
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.