Как обратиться к элементу матрицы в маткаде
Матрицы в Mathcad
Векторы и матрицы рассматриваются в программе Mathcad как одномерные и двумерные массивы данных.
Матрица создается с помощью диалогового окна Вставить матрицу (рис. 1.6), которое открывают командой Вставка > Матрица (Insert > Matrix) или первой кнопкой на панели «Матрица» (рис. 1.7). Вектор задается как матрица, имеющая один столбец. В диалоговом окне задается число строк и столбцов, а после вставки на рабочий лист матрица содержит вместо элементов заполнители, вместо которых следует вставить число, переменную или выражение.


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

Для работы с элементами матрицы используют индексы элементов. Нумерация строк и столбцов матрицы начинается с нуля, что задается системной переменной ORIGIN, и может быть изменено пользователем (например, блок ORIGIN:=1 устанавливает начальный индекс равным единице). Индекс элемента задается числом, переменной или выражением и отображается как нижний индекс. Он вводится после щелчка на кнопке Индекс (Subscript, xn) на панели инструментов Mатрица (Matrix) или нажатием символа «[» после имени массива (см. приложение «Горячие клавиши»). Индексы двумерных матриц записываются через запятую.
Иногда (например, при построении графиков) требуется выделить вектор, представляющий собой столбец матрицы. Номер столбца матрицы отображается как верхний индекс, заключенный в угловые скобки: . Для его ввода используется кнопка Столбец (Matrix Column) на панели инструментов Матрица или соответствующая «горячая» клавиша.
Для задания некоторой последовательности элементов матрицы используют диапазоны. Диапазон фактически представляет собой вектор, содержащий арифметическую прогрессию, определенную первым, вторым и последним элементами. Чтобы задать диапазон, следует указать значение первого элемента, через запятую значение второго и через точку с запятой значение последнего элемента. Точка с запятой при задании диапазона отображается как две точки (..). Диапазон можно использовать как значение переменной, например х:=0,0.01..1 . Если разность прогрессии равна единице (то есть, элементы просто нумеруются), значение второго элемента и соответствующую запятую опускают.
На рис. 1.8 приведены примеры реализации некоторых операций с матрицами.
Как обратиться к элементу матрицы в маткаде
При вычислении большого массива изначально отображаются только первые 12 строк и столбцов массива. На наличие в массиве других элементов указывают три точки в верхнем левом или нижнем правом углах массива. Чтобы просмотреть скрытые элементы, измените размер массива. Кроме того, можно просматривать индексы строки и столбца. Нумерация индексов элементов массива по умолчанию начинается с нуля. Начальное значение индекса можно изменить путем изменения встроенной переменной ORIGIN .
• Для ORIGIN=0 последний индекс вектора равен length(v) -1 .
• Переменная-диапазон, которая начинается со значения, большего ORIGIN , или заканчивается значением, меньшим длины массива, не охватывает все элементы массива.
• Значение переменной ORIGIN определяет, какие элементы массива могут существовать. Например, если используются настройки по умолчанию, не может существовать элемент массива с индексом –1. При вычислении выражения M -1 отобразится сообщение об ошибке.
Дополнительная информация
Системную переменную ORIGIN можно рассматривать как скрытый аргумент некоторых функций и операторов. В зависимости от значения ORIGIN такие функции и операторы возвращают разные результаты.
Следующие функции явным образом требуют указания индекса строки или столбца.
• Функции поиска — hlookup и vlookup .
• Функции сортировки — csort и rsort .
• Функции обработки изображений — subcolor , dilate, gray_dilate, erode и gray_erode .
Следующие функции не требуют указания индекса строки или столбца, но тем не менее зависят от значения ORIGIN .
• Антисимметричная тензорная функция ε .
Следующие операторы требуют указания индекса строки или столбца, и их результат зависит от значения ORIGIN .
08. Тема 2. Обработка структурированных данных в MathCad. Краткие теоретические сведения
Дискретной называется переменная, содержащая несколько значений, изменяющихся от начального до конечного на величину постоянного шага. Дискретная переменная может быть задана двумя способами:
1) а := а1, а2 .. An
2) А := а1 .. An
Где A – имя дискретной переменной,
A1 – ее начальное значение,
A2 – ее второе значение,
An – ее конечное значение.
Символ «..» Набирается либо клавишей «;» на клавиатуре, либо кнопкой M..n – в палитре матриц.

Для первого способа задания дискретной переменной шаг ее изменения равен (а2 – а1). Для второго способа задания дискретных переменных значение а2 не указывается, шаг изменения дискретной переменной равен 1, если a1an.
Примеры создания дискретных переменных приведены ниже.
X:= 2.. 7
Создается дискретная переменная х, значения которой изменяются от 2 до 7 с шагом 1.
Создается дискретная переменная y, значения которой изменяются от 2 до 7 с шагом 0.3.
Создается дискретная переменная z, значения которой изменяются от 9 до 1 с шагом -1.
Создается дискретная переменная a, значения которой изменяются от 8 до 3 с шагом -0.1.
Создается дискретная переменная b, значения которой изменяются от 0 до 2π с шагом π/10.
Дискретные переменные могут являться аргументами функций, тогда процесс вычисления значений функции приобретает циклический характер, и для каждого значения дискретной переменной вычисляется свое значение функции по заданной аналитической зависимости.
В системе MathCAD в основном используются массивы двух типов: одномерные (векторы) и двумерные (матрицы).
Каждый элемент вектора или матрицы имеет порядковый номер в массиве. Отсчет номеров начинается с того значения, которое содержится в системной переменной ORIGIN. По умолчанию эта переменная имеет значение 0, для изменения значения нужно задать, например,
Векторы и матрицы можно задавать различными способами: с помощью кнопки с изображением матриц на наборной панели математических инструментов; как переменную с индексами перечислением элементов массива с разделение запятой; с помощью аналитического выражения.
Массивы могут использоваться в выражениях целиком или поэлементно. Для обращения к элементам массивов нужно указать числовые значения индексов элементов в подстрочнике после имени массива. При выполнении расчетов можно обращаться к конкретной строке или столбцу матрицы с помощью верхнего индекса или нижних индексов.
На рисунке 2.2.1 приведены примеры создания массивов перечислением элементов (вектор R) и аналитически (вектор Z). Здесь же показано, как обратиться к элементу матрицы, ее столбцу или строке. Из рисунка видно, что после изменения значения переменной ORIGIN, значение элемента матрицы M2,1 тоже изменяется.


Рисунок 2.2.1 – Примеры создания массивов
Существует ряд операций над матрицами и векторами, а также встроенных векторных и матричных функций. Введем следующие обозначения: V – вектор, M – матрица. Основные операции с их назначением и правилами набора приведены в таблице 2.2.1.
Таблица 2.2.1. – Основные операции и функции для обработки массивов
Обращение к элементу матрицы
Помогите, не могу понять, в mathcad есть вот такие вот две матрицы (приложен рисунок). Допустим мне нужно обнулить в одной из этих матриц какой то определенный элемент (1,1). Как обратиться к элементу с данным индексом в такой матрице?
В обычной матрице можно было бы написать : G1,1 :=. А вот в такого рода матрице не знаю.
Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Обращение к элементу
Подскажите, как в Маткаде обратиться к конкретному элементу столбца. То есть есть столбец.
Обращение к элементу матрицы
как зделать операцию A template <class T> class matrix< T **mat; int n, m; public: .

Обращение к элементу матрицы (подсписка)
Проблема как всегда там, где её быть не должно.. Нужно изменить элемент в матрице (в подсписке). .
Что быстрее? Обращение к элементу массива или к элементу структуры?
Обращение к элементу массива или к элементу структуры? Экспериментирую с кодом и получается.