Как сделать матрицу в c builder

Обновлено: 06.07.2024

Матрица это набор объектов, которые хранятся в виде таблицы. У каждой матрицы есть имя, единый тип всех ее объектов.

Обявление матрицы в Си

Также как и переменные матрицу в Си необходимо объявить перед тем как с ней работать, необходимо указать ее тип, ее имя , количество строк -1 и количество столбцов -1. Нумерация столбцов и строк идет с 0.

Тип матрицы Имя [количество строк-1][количество столбцов-1];

int A[8][9] ; / /объявляет целочисленную матрицу с именем A , у которой 9 строк и 10 столбцов

После объявления матрицы, с ее элементами можно работать. Чтобы обратитсья к элементу матрицы нужно указать имя матрицы в первых квадратных скобках указать номер строки, во вторых квадратных скобках указать номер столбца.

A[0][1]=10; // элементу матрицы с номер строки 0 и столбца 1 присваивается значение 10

printf(“%d”, A[0][1]);// выводит на экран элемент матрицы с номер строки 0 и столбца 1

Задание матрицы в Си

Чтобы работать с матрицей в Си, необходимо присвоить начальные значения всех ее элементов.

Для работы со всеми элементами матрицы используется вложенные циклы for

В главном цикле “пробегаем” по всем строкам, а во вложенном “пробегаем” по всем столбцам для каждой строки.

// “пробегаемся” по всем строкам. Нумерация строк с 0.

// вложенный цикл, “пробегаемся” по всем столбцам для Нумерация столбцов с 0.

…Имя матрицы [i][j]…// работаем с элементом матрицы с номером строки i и номером столбца j

Пример программы 22. Программа задаёт целочисленную матрицу размером 10 на 10 и заполняет ее случайными числами в диапазоне, который укажет пользователь и выводит ее на экран.

int a[9][9]; // объявление матрицы 10 на 10

int i,j; // счетчики циклов

int range;// диапазон в котором присваиваются значения элементов матрицы

//ввод диапазона случайных чисел

printf("введите диапазон заполнения\n");

// пробегаем по всем строкам

// пробегаем по всем столбцам для данной строки i

a[i][j]=rand() % range+1; // прсиваиваем элементу матрицы a с номером строки i и номер столбца j случайного значения в диапазоне от 0 до 9

// пробегаем по всем строкам

// пробегаем по всем столбцам для данной строки i

// переход на следующую строку

При выводе матрицы на экран в Си для каждой строки мы совершаем переход на следующую строку с помощью оператора printf(" ");

Ввод матрицы в Си с помощью клавиатуры

Пример программы 23. Задаётся матрица размера 3 на 3 с помощью клавиатуры и ищется ее максимальный элемент. Он выводится на экран. При поиске максимального элемента, мы создаем специальную переменную max и присваиваем ей значение элемента a[0][0]. Пробегаем по всем элементам матрицы с помощью вложенного цикла, сравнивая текущий элемент с максимумом, если текущий элемент больше максимума, то максимуму присваивается значение этого элемента.

int a[2][2]; // объявление матрицы 3 на 3

int i,j; // счетчики циклов

int max; // переменная для хранения максимального элемента матрицы

// пробегаем по всем строкам

// пробегаем по всем столбцам для данной строки i

// ввод текущего элемента матрицы с клавиатуры

printf("Введите элемент матрицы [%d][%d]", i, j);

// переход на следующую строку

// пробегаем по всем строкам

// пробегаем по всем столбцам для данной строки i

// переход на следующую строку

// пробегаем по всем строкам

// пробегаем по всем столбцам для данной строки i

// сравниваем текущий элемент массива с максимумом

// вывод максимального элемента

printf ("Максимальный элемент массива %d", max);

Вернуться к содержанию Перейти к теме Работа с файлами в Си

Полезно почитать по теме массивы и матрицы в си
Массивы в си
Игра на си Крестики Нолики

Используйте матрицу для вывода сгруппированных данных и сводных сведений в отчете с разбивкой на страницы. Данные можно группировать по нескольким полям либо выражениям в группах строк и столбцов. Матрицы обеспечивают функциональность, подобную перекрестным и сводным таблицам. Во время выполнения, по мере объединения данных отчета и областей данных матрица растет на странице в горизонтальном и вертикальном направлении. Значения в ячейках матрицы отображают статистические значения пересечения групп строк и столбцов, которым принадлежит ячейка. Строки и столбцы можно форматировать, чтобы выделить нужные данные. Можно также включить переключатели детализации, которые по умолчанию скрывают подробные данные, чтобы пользователи могли по желанию отобразить подробные сведения.

После завершения проектирования можно продолжить разработку матрицы для улучшения условий просмотра пользователями. Дополнительные сведения см. в разделе Управление отображением области данных табликса на странице отчетов (построитель отчетов и службы SSRS).

Списки можно публиковать отдельно от отчета как элементы отчета. Дополнительные сведения см. в разделе Элементы отчета (построитель отчетов и службы SSRS).

Добавление матрицы к отчету

Мастер доступен только в Построитель отчетов SQL Server для SQL Server 2012.

В целях описания способа настройки таблицы от начала до конца в этом разделе используется шаблон матрицы. Первоначально в матрице имеется группа строк, группа столбцов, угловая ячейка и ячейка данных, как показано на следующем рисунке.

При выборе матрицы в области конструктора появляются маркеры строк и столбцов, как показано на следующем рисунке.

В режиме просмотра матрица расширяется для отображения значений группы строк и группы столбцов. В ячейках выводятся сводные значения, как показано на следующем рисунке.

Первоначальная матрица является шаблоном на основе области данных табликса. Можно продолжить разработку матрицы, добавив вложенные или смежные группы строк либо столбцов или даже строки подробностей. Дополнительные сведения см. в разделе Изучение возможностей области данных табликса (построитель отчетов и службы SSRS).

Добавление родительской или дочерней группы в матрицу

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

При помещении поля на панель Группирование происходит следующее.

Автоматически создается новая группа с уникальным именем на основе имени поля. Выражению группы присваивается значение простой ссылки на имя поля, например [Category] .

В области соответствующей группы строк или столбцов появится новая строка или столбец.

В новом столбце появится ячейка группы строк для строк данных по умолчанию из набора данных отчета. Ячейки в теле табликса для этой строки теперь являются элементами группы строк. Если определена какая-либо группа столбцов, ячейки столбцов являются элементами этой группы столбов. Индикаторы групп визуально отображают членство в группе для каждой ячейки.

Для настройки группы после ее создания, используется диалоговое окно Группа табликсов . Можно переименовать группу, а также изменить или добавить дополнительные выражения к определению группы. Сведения о добавлении и удалении строк в таблице см. в разделе Вставка или удаление строки (построитель отчетов и службы SSRS).

При выполнении отчета заголовки динамических столбцов расширяются вправо (или влево, если параметр матрицы Direction имеет значение RTL) на столько столбцов, сколько имеется уникальных значений групп. Динамические строки расширяются по странице вниз. Данные, отображающиеся в ячейках тела табликса, являются статистическими выражениями, основанными на пересечениях групп строк и столбцов, как показано на следующем рисунке.

В режиме просмотра отчет отображается в том виде, в каком показан на следующем рисунке.

Добавление смежной группы в матрицу

Для добавления смежной группы, основанной на одном поле набора данных, используется контекстное меню панели группировки. Дополнительные сведения см. в разделе Добавление или удаление группы в области данных (построитель отчетов и службы SSRS). На следующем рисунке показана группа на основе географических данных и смежная группа на основе года.

В следующем примере запрос фильтрует данные, чтобы вернуть значения только для Европы и только для 2003 и 2004 годов. Тем не менее, фильтры можно установить независимо в каждой группе. В режиме просмотра отчет отображается в том виде, в каком показан на следующем рисунке.

Чтобы добавить общий столбец для каждой смежной группы, щелкните ячейку определения группы столбцов и выберите Добавить итог . Рядом группой столбцов появится новый статический столбец со статистическим выражением суммы по умолчанию для каждого числового поля в существующих строках. Чтобы изменить выражение, измените его вручную, например Avg([Sales]) . Дополнительные сведения см. в разделе Добавление итога в группу или область данных табликса (построитель отчетов и службы SSRS).


ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ЧИСЛЕННОГО РЕШЕНИЯ СИСТЕМЫ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ С ТРЕХДИАГОНАЛЬНОЙ МАТРИЦЕЙ КОЭФФИЦИЕНТОВ

Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Решение систем линейных алгебраических уравнений – одна из основных задач вычислительной линейной алгебры. Хотя задача решения системы линейных уравнений сравнительно редко представляет самостоятельный интерес для приложений, от умения эффективно решать такие системы часто зависит сама возможность математического моделирования самых разнообразных процессов с применением ЭВМ. Значительная часть численных методов решения различных (в особенности – нелинейных) задач включает в себя решение систем линейных уравнений как элементарный шаг соответствующего алгоритма.

Одна из трудностей практического решения систем большой размерности связанна с ограниченностью оперативной памяти ЭВМ. Хотя объем оперативной памяти вновь создаваемых вычислительных машин растет очень быстро, тем не менее, еще быстрее возрастают потребности практики в решении задач все большей размерности. В значительной степени ограничения на размерность решаемых систем можно снять, если использовать для хранения матрицы внешние запоминающие устройства. Однако в этом случае многократно возрастают как затраты машинного времени, так и сложность соответствующих алгоритмов. Поэтому при создании вычислительных алгоритмов линейной алгебры большое внимание уделяют способам компактного размещения элементов матриц в памятиЭВМ.

К счастью, приложения очень часто приводят к матрицам, в которых число ненулевых элементов много меньше общего числа элементов матрицы. Такие матрицы принято называть разреженными. Одним из основных источников разреженных матриц являются математические модели технических устройств, состоящих из большого числа элементов, связи между которыми локальны. Простейшие примеры таких устройств – сложные строительные конструкции и большие электрические цепи.

Известны примеры решенных в последние годы задач, где число неизвестных достигало сотен тысяч. Естественно, это было бы невозможно, если бы соответствующие матрицы не являлись разреженными (матрица системы из 100 тыс. уравнений в формате двойной точности заняла бы около 75 Гбайт).

Целью работы является: написать программу для реализации численного решения системы линейных алгебраических уравнений с трёхдиагональной матрицей коэффициентов.

Для достижения данной цели необходимо выполнить следующие задачи:

- изучить основные понятия и способы нахождения решения,

- выбрать средства для реализации программы,

Для решения задачи будет использоваться язык программирования C++.

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

1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Метод прогонки для решения СЛАУ

Трехдиагональной матрицей или матрицей Якоби называют матрицу следующего вида:

где во всех остальных местах, кроме главной диагонали и двух соседних с ней, стоят нули.

Для решения СЛАУ с трёхдиагональной матрицей используется метод прогонки.[1]

Метод прогонки (англ. tridiagonal matrix algorithm) или алгоритм Томаса (англ. Thomas algorithm) используется для решения систем линейных уравнений вида , где A —трёхдиагональная матрица. Представляет собой вариант метода последовательного исключения неизвестных. Метод прогонки был предложен И. М. Гельфандом и О. В. Локуциевским (в 1952 году; опубликовано в 1960 и 1962 годах), а также независимо другими авторами.[3]

Метод применяется в случае, когда матрица A — трехдиагональная. Сформулируем общую постановку задачи.

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

которому соответствует расширенная матрица:

Здесь первое и последнее уравнения, содержащие по два слагаемых, знак минус (–) при коэффициенте βi взят для более удобного представления расчетных формул метода.

Требуется найти решение системы (1) методом исключения Гаусса.

Если к (1) применить алгоритм прямого хода метода Гаусса, то вместо исходной расширенной матрицы получится трапециевидная:

Учитывая, что последний столбец в этой матрице соответствует правой части, и переходя к системе, включающей неизвестные, получаем рекуррентную формулу:

Соотношение (2) есть формула для обратного хода, а формулы для коэффициентов которые называются прогоночными, определяются из (1), (2). Запишем (2) для индекса и подставим в (1). Получим

Приводя эту формулу к виду (2) и сравнивая, получаем рекуррентные соотношения для

Определение прогоночных коэффициентов по формулам (3) соответствует прямому ходу метода прогонки.

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

Остальные значения неизвестных находятся по рекуррентной формуле (2).[5]

Алгоритм решения систем уравнений методом прогонки

Прямой ход.1. Вычислить (в (3) подставить ).

2. Вычислить прогоночные коэффициенты: по формулам (3).

2. Значения определить по формуле (2):

1. Аналогичный подход используется для решения систем линейных алгебраических уравнений с пятидиагональными матрицами.

2. Алгоритм метода прогонки называется корректным, если для всех , и устойчивым, если .

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

и в (5) имеет место строгое неравенство хотя бы при одном .

4. Алгоритм метода прогонки является экономичным и требует для своей реализации количество операций, пропорциональное .[5]

2. ВЫБОР ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Среда разработки Embarcadero C++ Builder XE

Embarcadero C++Builder XE - это на сегодняшний день последняя современная технология и среда для программирования на языке C++, пришедшая на смену многострадальному средству визуальной разработки на языке C++ Builder, которая первоначально разрабатывалась компанией Borland Software, а затем её отдельным подразделением CodeGear, которое сейчас принадлежит компании Embarcadero Technologies, занимающаяся разработкой программного обеспечения для создания средств управления различными базами данных.

С помощью C++Builder XE стало быстрее выполнять работу по созданию высококачественных приложений для Windows-приложений, за счет быстрого написания кода, новых инструментов и компонентов.

При этом сохраняются бесплатные лицензии на прежние старые версии: C++Builder 2010, 2009, 2007 и C++Builder 6, что очень важно для многих программистов использующих язык С++.

По этому, сразу можно сказать, что все старые программы, написанные на Borland C++ Builder 6.0, были легко откомпилированы с помощью Embarcadero C++Builder XE. Сама оболочка стала более понятной и удобной и не вызывала раздражение, как это было в версиях после Borland C++ Builder 6.0.(Рисунок 1).[4]

Рисунок 1 — Среда разработки C++ Builder XE

Средаразработки Microsoft Visual Studio 2012

Рисунок 2 — Среда разработки Microsoft VS 2012

Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня.

Среда разработки QtCreator

Qt Creator (ранее известная под кодовым названием Greenhouse) — кроссплатформенная свободная IDE для разработки на С, С++ и QML. Разработана Trolltech (Digia) для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML. Поддерживаемые компиляторы: GCC, Clang, MinGW, MSVC, Linux ICC, GCCE, RVCT,WINSCW.[2]

Рисунок 3 — Среда разработки Qt Creator

Основная задача Qt Creator — упростить разработку приложения с помощью фреймворка Qt на разных платформах. Поэтому среди возможностей, присущих любой среде разработки, есть и специфичные, такие как отладка приложений на QML и отображение в отладчике данных из контейнеров Qt, встроенный дизайнер интерфейсов как на QML, так и на QtWidgets.

Обоснование выбора среды разработки

В качестве компилятора, для реализации нашей задачи, мы будем использовать Embarcadero C++ Builder XE, подробнее о среде разработки смотрите в пункте 2.1. В программе так же будет присутствовать пользовательский интерфейс. Это связанно с тем, что все вычисления будут происходить не только на этапе компиляции программы.

Почему выбор пал именно на данный вид компилятора? Это связано с тем, что программирование в C++ Builder значительно эффективнее, чем в других средах и платформах C/C++, таких как GCC, Visual C++ и MFC. Библиотека визуальных компонентов (VCL) C++Builder инкапсулирует сложные, трудоемкие интерфейсы Windows API в удобные, расширяемые компоненты многократного применения. Она полностью интегрирована в среду разработки и двусторонние визуальные конструкторы. Это облегчает управление свойствами и методами компонентов через программный код и в визуальном режиме. В результате при разработке приложений с помощью библиотеки VCL приходится писать, отлаживать и тестировать до 5 раз меньше программных строк без ухудшения производительности и функциональных возможностей. Приложения, созданные с использованием компонентов, отличаются более высоким качеством, они удобнее в обслуживании и легче поддаются изменению.[4]

3. ОПИСАНИЕ РЕАЛИЗАЦИИ ПРОГРАММЫ

После анализа предметной области можно переходить к программной реализации.

В качестве языка программирования для реализации алгоритма был выбран язык С++. Это очень мощный язык, позволяющий создавать программы любого назначения и любой сложности. Поддерживаются множество стилей программирования, включая ООП. Имеется возможность прямой работы с памятью.

Определившись с выбором подходящего компилятора, можно приступать к написанию самой программы.

Реализация алгоритма решения СЛАУ

Рассмотрим основное тело программы, написанное в файле Unit1.cpp.

Первым делом, мы видим заголовочные файлы форм Unit1.h и Unit2.h Листинг 1.1.

Листинг 1.1. Заголовочные файлы форм

Дальше идёт объявление переменной (AnsiString num), а которой хранится вся информация о размере таблицы.

В следующей части находится событие, которое выполняется при нажатии на кнопку Button. Листинг 1.2.

Листинг 1.2. Событие Button1Click

void __fastcall TForm1::Button1Click(TObject *Sender)

Далее рассмотрим основное тело программы, написанное в файле Unit2.cpp.

Здесь мы видим событие после показа формы. Как только в первой форме выполняется команда Form2->Show(), сразу выполняется код в этом событии. Листинг 1.3.

Листинг 1.3. Событие FormShow

void __fastcall TForm2::FormShow(TObject *Sender)

int n = StrToInt(n1);

Далее выделяется память под массив типа float размером NxN и предоставляются следующие переменные для наглядного вывода. Листинг 1.4.

Листинг 1.4. Выделение памяти под массив

float *base = (float*)calloc(n*(n + 1), sizeof(float));

String st= "Введите ";

Следующая часть служит для ввода данных. В данном цикле создаются окна для ввода Input - это и есть вызов окна с параметрами. После ввода строки матрицы она добавляется в ListBox для наглядного отображения. Листинг 1.5.

Листинг 1.5. Ввод данных

for (int i = 0; iItems->Add(st1);

Листинг 1.6. Выделение массивов, расчёт и вывод коэффициентов

//Выделение массивов для вспомогательных коэффициентов

float *alpha; float *betta;

alpha = (float*)calloc(n, sizeof(float));

betta = (float*)calloc(n, sizeof(float));

//Расчет и вывод первых коэффициентов

*alpha = -*(base + 1) / *base;

*betta = *(base + n) / *base;

//В этом цикле производится расчет всех остальных коэффициентов.

for (int i = 1; i= 0; i--)

*(ans + i) = *(alpha + i)**(ans + i + 1) + *(betta + i);

В следующей части, в элемент ListBox добавляются по очереди корни, которые выводятся на форму, каждый с новой строки. А далее находится событие, которое выполняется при нажатии на кнопку FormClose. И, в заключении, программа закрывается. Листинг 1.8.

Листинг 1.8.Вывод корней на экран

for (int i = 0; iItems->Add(st);

void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)

4. ТЕСТИРОВАНИЕ РАБОТЫ ПРОГРАММЫ

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

Решение контрольного примера

Дана система линейных алгебраических уравнеий с трёхдиагональной матрицей:

Решим эту систему методом прогонки.

Данная система удовлетворяет условию преобладания диагональных элементов (10.3): в первом уравнении , во втором уравнении ; в третьем уравнении , в четвертом уравнении . Далее выполняем прямой и обратный ход, учитывая, что расширенная матрица имеет вид:

1. Прямой ход. Вычислим прогоночные коэффициенты:

Подчеркнем, что , так как в (10.2) во втором слагаемом взят знак "минус":

Подстановкой решения в исходную систему убеждаемся, что задача решена верно. Для данного примера , т.е. метод прогонки оказался корректным и устойчивым (см. пункт 3 замечаний 10.3).

Для наглядности представления информации исходные данные и результаты расчетов поместим в табл. 10.1, где в первых четырех колонках содержатся исходные данные, а в последних трех — полученные результаты. Таблица 1.1.

Исходные данные и результаты расчётов

Результат работы созданного программного обеспечения

Для начала производим ввод данных, то есть указываем размерность нашей будущей матрицы. (Рисунок 4).

Рисунок 4 — Ввод данных о размерности матрицы.

Далее по очереди вводим элементы 1 строки нашей матрицы и элемент столбца правой части системы, как указано на рисунках 5 и 6 соответственно:

Рисунок 5 — Ввод элементов первой строки

Рисунок 6 - Ввод элемента столбца правой части системы.

То же самое проделываем с остальными строками, в зависимости от размера матрицы. Закончив с вводом данных, мы получаем итоговое окно, где можем наблюдать окна с выводом нашей системы линейных алгебраических уравнений и её корнями. (Рисунок 7).

Рисунок 7 — Вывод СЛАУ и её корней.

При выполнении работы вручную и с помощью программы, мы можем сделать вывод, что вычисление происходит с небольшой погрешностью в 0,0001, что с правильным округлением значения приводит к верному ответу. Следовательно, можно сделать вывод, что программа работает правильно. Результаты можно увидеть в приведенной ниже таблице 2.

ЗАКЛЮЧЕНИЕ

Численные методы являются одним из мощных математических средств решения задачи. Простейшие численные методы мы используем всюду, например, извлекая квадратный корень на листке бумаги. Есть задачи, где без достаточно сложных численных методов не удалось бы получить ответа; классический пример – открытие Нептуна по аномалиям движения Урана.

Одним из самых распространенных методов решения систем линейных уравнений является метод прогонки. Условие преобладания диагональных элементов обеспечивает также устойчивость метода прогонки относительно погрешностей округлений. Последнее обстоятельство позволяет использовать метод прогонки для решения больших систем уравнений. Метод прогонки оказывается устойчивым даже при нарушении условия преобладания диагональных элементов.

В ходе выполнения курсовой работы мы проделали ручной расчет заданного уравнения, выполнили расчет на языке программирования C++.

Мы так же достигли поставленные цели и задачи: изучили решение СЛАУ с трёхдиагональной матрицей коэффициентов (метод прогонки) и, используя полученные знания, создали программу для решения СЛАУ данным методом.

Матрица — это двумерный массив, который имеет m строк и n столбцов. Другими словами, матрица — это комбинация двух или более векторов с одинаковым типом данных.

Примечание. С помощью R. можно создать более двух массивов измерений.

R Matrix Tutorial

Как создать матрицу в R

Мы можем создать матрицу с помощью функции matrix (). Эта функция принимает три аргумента:

Аргументы:

  • data : коллекция элементов, которые R будет размещать в строках и столбцах матрицы
  • nrow : количество строк
  • ncol : количество столбцов
  • Byrow : строки заполняются слева направо. Мы используем `byrow = FALSE` (значения по умолчанию), если мы хотим, чтобы матрица заполнялась столбцами, т.е. значения заполнялись сверху вниз.

Построим две матрицы 5×2 с последовательностью чисел от 1 до 10, одну с byrow = TRUE и одну с byrow = FALSE, чтобы увидеть разницу.

R Matrix Tutorial

Распечатать размер матрицы с помощью dim ()

Построить матрицу из 5 строк, которые содержат числа от 1 до 10 и byrow = FALSE

R Matrix Tutorial

Распечатать размер матрицы с помощью dim ()

Примечание . Использование команды matrix_b

Вы также можете создать матрицу 4×3, используя ncol. R создаст 3 столбца и заполнит строку сверху вниз. Проверьте пример

Добавить столбец в матрицу с помощью cbind ()

Вы можете добавить столбец в матрицу с помощью команды cbind (). cbind () означает привязку столбца. cbind () может объединять столько матриц или столбцов, сколько указано. Например, в нашем предыдущем примере была создана матрица 5×2. Мы объединяем третий столбец и проверяем размер 5×3

Пример:

Пример:

Пример:

Мы также можем добавить более одного столбца. Давайте посмотрим следующую последовательность чисел в матрице matrix_a2. Размерность новой матрицы будет 4х6 с числом от 1 до 24.

Пример:

ПРИМЕЧАНИЕ : количество строк матриц должно быть равным для работы cbind

cbind () объединяет столбцы, rbind () добавляет строки. Давайте добавим одну строку в нашу матрицу matrix_c и проверим размерность 5×3

Нарезать матрицу

Мы можем выбрать один или несколько элементов из матрицы, используя квадратные скобки []. Вот где нарезка входит в картину.

Читайте также: