Progress-servis55.ru

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

Matlab сложение строк

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

Создание, конкатенация и расширение матрицы

Самая основная структура данных MATLAB® является матрицей. Матрица является двумерным, прямоугольным массивом элементов данных, расположенных в строках и столбцах. Элементы могут быть числами, логические значения ( true или false ), даты и времена, строки или некоторый другой тип данных MATLAB.

Даже один номер хранится как матрица. Например, переменная, содержащая значение 100, хранится как матрица 1 на 1 типа double .

Построение матрицы данных

Если у вас есть определенный набор данных, можно расположить элементы в матрице с помощью квадратных скобок. Одна строка данных имеет пробелы или запятые, промежуточные элементы, и точка с запятой разделяет строки. Например, создайте одну строку четырех числовых элементов. Размер получившейся матрицы 1 на 4, поскольку это ссорится и четыре столбца. Матрица этой формы часто упоминается как вектор-строка.

Теперь создайте матрицу с теми же числами, но расположите их в двух строках. Эта матрица имеет две строки и два столбца.

Специализированные матричные функции

MATLAB имеет много функций, что справка создает матрицы с определенными значениями или конкретной структурой. Например, zeros и ones функции создают матрицы всех нулей или всех единиц. Первые и вторые аргументы этих функций являются количеством строк и количеством столбцов матрицы, соответственно.

diag функционируйте помещает входные элементы в диагональ матрицы. Например, создайте вектор-строку A содержа четыре элемента. Затем создайте матрицу 4 на 4, диагональные элементы которой являются элементами A .

Конкатенация матриц

Можно также использовать квадратные скобки, чтобы соединить существующие матрицы вместе. Этот способ создать матрицу называется конкатенацией . Например, конкатенируйте два вектора-строки, чтобы сделать еще более длинный вектор-строку.

Располагать A и B как две строки матрицы, используйте точку с запятой.

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

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

Генерация числовой последовательности

colon удобный путь состоит в том, чтобы создать матрицы, элементы которых последовательны и равномерно расположены с интервалами. Например, создайте вектор-строку, элементы которого являются целыми числами от 1 до 10.

Можно использовать оператор двоеточия, чтобы создать последовательность чисел в любой области значений, постепенно увеличенной одной.

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

Читать еще:  Вектор в matlab

Чтобы постепенно уменьшиться, используйте отрицательное число.

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

Расширение матрицы

Можно добавить один или несколько элементов в матрицу путем размещения их за пределами существующих контуров индекса строки и столбца. MATLAB автоматически заполняет матрицу нулями, чтобы сохранить его прямоугольным. Например, создайте 2 3 матрица и добавьте дополнительную строку и столбец в нее путем вставки элемента в (3,4) положение.

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

Расширять размер матрицы неоднократно, такой как в for цикл, обычно лучше предварительно выделить пробел для самой большой матрицы, которую вы ожидаете создавать. Без предварительного выделения MATLAB должен выделить память каждый раз увеличения размера, замедлив операции. Например, предварительно выделите матрицу, которая содержит до 10 000 строк и 10 000 столбцов путем инициализации ее элементов, чтобы обнулить.

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

Пустые массивы

Пустой массив в MATLAB является массивом по крайней мере с одной равной нулю длиной размерности. Пустые массивы полезны для представления концепции «ничего» программно. Например, предположите, что вы хотите найти все элементы вектора, которые являются меньше чем 0, но нет ни одного. find функция возвращает пустой вектор индексов, указывая, что она не могла найти элементы меньше чем 0.

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

Похожие темы

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB
Поддержка

© 1994-2020 The MathWorks, Inc.

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

Читать еще:  Matlab цвета графиков

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

Matlab сложение строк

Так как массивы являются важнейшим объектом нашего внимания в системе MATLAB, рассмотрим синтаксис операций с массивами более подробно.

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

Напомним также, что для операции конкатенации в качестве разделителей элементов используются либо запятые (пробелы), либо точки с запятой. Причём в первом случае речь идёт о «горизонтальной» конкатенации или конкатенации вдоль строк, а во втором — о «вертикальной» конкатенации или конкатенации вдоль столбцов. Например, операция

из двух матриц A1 и A2 , у которых предполагается одинаковым число строк, производит более «широкую» матрицу C с числом столбцов, равным сумме столбцов матриц-слагаемых.

соединяет матрицы A1 и A2 вертикально, производя матрицу C , у которой число строк будет равно сумме числа строк матриц A1 и A2 . В случае разного числа столбцов у A1 и A2 появится сообщение об ошибке:

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

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

Существует ещё одна мощная групповая операция, применяемая к массивам. Это операция формирования диапазона значений, обозначаемая двоеточием. Составим одномерный массив diap1 , состоящий из всех вещественных чисел от 3.7 (включительно) с приращением 0.3 и не более 8.947 . Для этого применяем операцию, обозначаемую двоеточием:

diap1 = 3.7 : 0.3 : 8.947 ;

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

Читать еще:  Функция plot в matlab

Довольно трудно так сразу в уме подсчитать количество попадающих в заданный диапазон и, соответственно в массив diap1 , элементов. Поэтому вызовем функцию length :

Чаще всего эту операцию применяют для формирования диапазона целых чисел:

diap2 = 4 : 2 : 26

Если приращение равно единице, то его можно для краткости опускать:

После того, как мы ввели последнюю из специфических для работы с массивами операций, рассмотрим некоторые тонкости их совместного применения.

Применим операцию «диапазон» в контексте операции индексации:

a = [ 1 2 ; 3 4 ; 5 6 ];
b = a(2,:)
b =
3 4

Здесь операция «диапазон» позволяет захватить все имеющиеся значения второго индекса. В результате переменная b становится равной одномерному массиву, состоящему из всех элементов второй строки двумерного массива a . Таким образом, компактное выражение a(2,:) позволяет «взять» из матрицы a её вторую строку.

Это же выражение позволяет удалить строку (или столбец), если при этом использовать понятие пустого массива, который обозначается как [ ] :

Теперь рассмотрим другой пример. Пусть у нас имеется одномерный массив

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

в котором указано не единственное значение индекса, а целый диапазон индексов, значения которых последовательно возрастают от 2 до 4 . Это означает, что мы выполняем групповую операцию, помещающую в переменную b последовательно второй, третий и четвёртый элементы массива a . Таким образом формируется одномерный массив b :

Из приведённого выше объяснения вытекает способ выбрать из массива a , например, три элемента в произвольном порядке, то есть сформировать одномерный массив b , первый элемент которого равен последнему элементу массива a , второй элемент b равен третьему элементу a , а третий элемент b равен первому элементу a . Вот решающее эту задачу выражение:

так как в индексации участвует целый набор индексов, первый из которых равен 5 , второй индекс (по порядку следования) равен 3 , а третий равен 1 . Это и объясняет порядок формирования элементов массива b .

Переставим местами столбцы в матрице

a = [ 1 2 3; 4 5 6; 7 8 9];

Мы хотим, чтобы последний столбец стал первым, второй — последним, а первый — вторым. Вот подходящее решение:

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

Например, из матрицы a с размером 3×3, полученной предыдущей операцией и имеющей вид

можно сделать матрицу c с размером 4×5 :

c = a([ 2 3 3 2 ] , [ 2 1 3 2 1 ])

При получении матрицы c из матрицы a первая её строка удалена (не используется), вторая и третья строки — продублированы (взяты дважды). При этом каждая из этих строк «растянута» за счёт дублирования их первого и второго элементов (с последующей перестановкой элементов местами).

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