Как задать массив в Matlab: простые и эффективные способы
Matlab – это мощная вычислительная среда, которая широко используется для работы с массивами и матрицами. Понимание основных способов задания массивов в Matlab является важным навыком, который поможет вам эффективно работать с данными и создавать сложные вычислительные модели.
Самым простым способом задания массива в Matlab является использование оператора квадратные скобки [ ]. С помощью этого оператора вы можете указать список элементов, разделенных запятыми, и создать одномерный массив. Например, вы можете создать массив из чисел от 1 до 10 следующим образом: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
Если вам нужно создать массив с шагом, вы можете использовать оператор двоеточие ( : ). Например, оператор 1:10 создаст массив из чисел от 1 до 10 с шагом 1. Вы также можете указать шаг явно, используя оператор двоеточие с шагом, например 1:2:10 создаст массив из чисел от 1 до 10 с шагом 2.
Особенно полезным является оператор zeros, который позволяет создавать массивы заданного размера, заполненные нулями. Например, оператор zeros(3, 4) создаст двумерный массив размером 3×4, заполненный нулями. А если вам нужен трехмерный массив, вы можете использовать оператор zeros(3, 4, 2), чтобы создать массив размером 3x4x2, заполненный нулями.
Задание массива в Matlab: обзор основных методов
Задание массива является основой работы в Matlab и необходимым шагом для решения многих задач. В языке Matlab существует несколько способов задания массива, каждый из которых предоставляет свои преимущества и удобства.
1. Задание массива с помощью оператора []: данный способ является наиболее простым и удобным для использования. Для задания массива необходимо перечислить его элементы через запятую внутри квадратных скобок. Например, a = [1, 2, 3, 4, 5].
2. Задание массива с помощью оператора linspace: данный способ позволяет задать массив, содержащий равномерно расположенные элементы в заданном интервале. Оператор linspace принимает на вход три аргумента: начальное значение, конечное значение и количество элементов в массиве. Например, b = linspace(0, 1, 10).
3. Задание массива с помощью оператора colon: данный способ позволяет задать массив, содержащий элементы, образующие арифметическую прогрессию. Оператор colon принимает на вход два аргумента: начальное значение и шаг прогрессии. Например, c = 1:2:10 задаст массив [1, 3, 5, 7, 9].
4. Задание массива с помощью функции zeros: данная функция позволяет задать массив, заполненный нулями. Функция принимает на вход размеры массива в виде аргумента и возвращает массив указанного размера, заполненный нулями. Например, d = zeros(3, 3) задаст двумерный массив 3×3, заполненный нулями.
5. Задание массива с помощью функции ones: данная функция аналогична функции zeros, но задает массив, заполненный единицами. Также принимает размеры массива и возвращает массив указанного размера, заполненный единицами. Например, e = ones(2, 2) задаст двумерный массив 2×2, заполненный единицами.
Кроме перечисленных методов, в Matlab существуют и другие способы задания массивов, такие как использование функций rand, eye, diag и др. Выбор метода зависит от конкретной задачи, удобства использования и требуемой структуры массива.
Использование оператора присваивания
Для задания массива в Matlab можно использовать оператор присваивания, который позволяет присвоить значение одной или нескольким переменным. В случае задания массива, оператор присваивания используется для заполнения элементов массива определенными значениями.
Самый простой способ использования оператора присваивания для задания массива в Matlab – это создание переменной и присвоение ей значения массива. Например, чтобы создать массив из трех элементов, можно написать следующий код:
В этом случае переменной x будет присвоено значение массива [1 2 3]. Здесь пробелы между элементами массива используются для разделения значений. Массив может содержать значения любого типа данных: числа, строки, логические значения и т. д.
Если нужно создать массив, состоящий из последовательности чисел, можно воспользоваться оператором диапазона (:). Например, чтобы создать массив чисел от 1 до 5 можно написать следующий код:
В этом случае переменной y будет присвоено значение массива [1 2 3 4 5]. Оператор диапазона позволяет задавать не только возрастающие, но и убывающие последовательности чисел.
Также, с помощью оператора присваивания можно задать массив, используя функции, такие как zeros, ones или rand. Например, чтобы создать массив размером 3×3, заполненный нулями, можно написать следующий код:
В этом случае переменной z будет присвоено значение массива [0 0 0; 0 0 0; 0 0 0]. Функция zeros принимает аргументы, указывающие размеры массива.
Таким образом, использование оператора присваивания позволяет задавать массивы в Matlab различными способами – от простого присваивания значения переменной до использования функций для генерации массивов с определенными значениями.
Создание массива с помощью встроенных функций
В языке MATLAB существует несколько встроенных функций, которые позволяют создавать массивы различных видов. Эти функции удобны в использовании и позволяют генерировать массивы с заданными свойствами.
Одной из наиболее распространенных функций для создания массивов в MATLAB является функция linspace. Данная функция позволяет создать массив с заданным количеством элементов, равномерно распределенных между двумя заданными значениями. Например, можно создать массив из 100 элементов, равномерно распределенных между 0 и 1:
array = linspace(0, 1, 100);
Также в MATLAB есть функция ones, которая создает массив указанного размера, все элементы которого равны 1. Например, можно создать массив размером 3×3, состоящий из единиц:
Функция zeros работает аналогичным образом, но создает массив с элементами, равными 0. Например, можно создать массив размером 4×4, состоящий из нулей:
array = zeros(4, 4);
Можно создавать массивы с помощью функции eye, которая создает единичную матрицу указанного размера. Например, можно создать 5×5 единичную матрицу:
В MATLAB также доступна функция rand, которая создает массив указанного размера, заполненный случайными числами из равномерного распределения на интервале [0, 1]. Например, можно создать массив размером 2×2 заполненный случайными числами:
Существует и много других встроенных функций для создания массивов в MATLAB. Они позволяют гибко задавать форму, размер и значения элементов массива. Благодаря этим функциям создание массивов в MATLAB становится простым и эффективным процессом.
Инициализация массива с помощью операций над другими массивами
Matlab предоставляет удобные возможности для инициализации массивов с помощью операций над другими массивами. Это позволяет создавать новые массивы на основе уже существующих, используя различные математические операции и функции.
Одной из наиболее часто используемых операций является умножение или деление массива на определенное число. Например, чтобы создать массив, состоящий из повторяющегося значения, можно умножить скалярную величину на вектор или матрицу:
scalar = 5;vector = [1 2 3];
matrix = [4 5 6; 7 8 9];
new_vector = scalar * vector;
new_matrix = scalar * matrix;
Также можно использовать операции над массивами, такие как сложение, вычитание и возведение в степень. Например:
array1 = [1 2 3];array2 = [4 5 6];
array_sum = array1 + array2;
array_diff = array1 - array2;
array_power = array1 .^ 2; % возвести каждый элемент в квадрат
Для более сложных операций также можно использовать функции, такие как sin, cos, exp и другие. Например:
array = [1 2 3];sin_array = sin(array);
cos_array = cos(array);
exp_array = exp(array);
Также можно использовать битовые операции, такие как побитовое И, ИЛИ и др. Например:
array1 = [1 0 1];array2 = [0 1 0];
bitwise_and = bitand(array1, array2);
bitwise_or = bitor(array1, array2);
bitwise_xor = bitxor(array1, array2);
Такие операции позволяют легко и удобно выполнять инициализацию массивов в Matlab с помощью уже существующих массивов и математических операций.
Простые способы задания массива в Matlab
В Matlab есть несколько простых и эффективных способов задания массива. Один из самых простых способов – это задать массив в виде списка значений, разделенных запятыми. Например, можно задать массив из трех элементов следующим образом:
Таким образом, массив A будет содержать значения 1, 2 и 3. Массивы в Matlab могут быть одномерными, двумерными и даже многомерными. Для задания двумерного массива можно использовать точки с запятой для разделения строк:
В результате массив B будет иметь две строки и три столбца.
Еще одним простым способом задания массива в Matlab является использование функций-генераторов, таких как linspace и logspace . Например, функция linspace позволяет создать массив с заданным числом элементов, расположенных равномерно в заданном диапазоне. Например:
C = linspace(0, 1, 5);
В результате массив C будет состоять из пяти элементов, равномерно распределенных от 0 до 1.
Также, можно использовать функцию-генератор zeros для создания массива нулей заданного размера или функцию ones для создания массива единиц. Например:
В результате массив D будет иметь размер 3×4 и будет состоять из нулей.
Заполнение массива последовательностью чисел
Заполнение массива последовательностью чисел является одним из наиболее распространенных и полезных способов инициализации массивов в Matlab. Для этого можно использовать несколько методов.
1. Задание значений вручную. Самым простым и понятным способом является задание значений элементов массива вручную. Например, для создания массива из первых десяти натуральных чисел можно использовать следующую конструкцию:
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
2. Использование оператора “:”. Оператор “:” позволяет создавать массивы с заданным шагом. Например, чтобы создать массив из чисел от 1 до 10 с шагом 2, можно использовать следующий код:
array = 1:2:10;
Результатом выполнения этого кода будет массив [1, 3, 5, 7, 9].
3. Использование функции linspace. Функция linspace позволяет создавать массивы с заданным количеством значений между начальным и конечным значениями. Например, чтобы создать массив из 5 равномерно распределенных чисел между 0 и 1, можно использовать следующий код:
array = linspace(0, 1, 5);
Результатом выполнения этого кода будет массив [0, 0.25, 0.5, 0.75, 1].
Независимо от выбранного способа, заполнение массива последовательностью чисел позволяет эффективно и быстро инициализировать массивы в Matlab, что является важной задачей при работе с большими объемами данных. Таким образом, знание и применение этих методов позволяет значительно упростить и ускорить программирование в Matlab.
Задание массива с помощью элементов с фиксированным шагом
В Matlab для задания массива с помощью элементов с фиксированным шагом можно использовать различные функции, такие как linspace, colon или индексацию элементов.
Функция linspace позволяет создать массив, состоящий из заданного количества элементов с равным расстоянием между ними. Синтаксис функции выглядит следующим образом:
linspace(x1, x2, N)
где x1 и x2 – начальное и конечное значения, а N – количество элементов. Например, чтобы создать массив, в котором значения изменяются от 1 до 10 с шагом 0.5, можно использовать следующую команду:
array = linspace(1, 10, 19)
Функция colon позволяет создать массив, задав начальное, конечное значение и шаг. Синтаксис функции выглядит следующим образом:
где start – начальное значение, step – шаг, end – конечное значение. Например, чтобы создать массив, в котором значения изменяются от 0 до 10 с шагом 2, можно использовать следующую команду:
Также можно задать массив с помощью элементов, указывая их индексы в квадратных скобках. Например, чтобы создать массив, содержащий значения 1, 3, 5, 7, можно использовать следующую команду:
Использование функций linspace и colon позволяет задать массив с большим количеством элементов и заданным шагом, в то время как индексация элементов полезна для создания массивов с произвольными значениями.
Создание массива с помощью функции ones и zeros
В языке программирования Matlab существуют удобные функции для создания массивов, например, функции ones и zeros. Функция ones позволяет создать массив заданного размера, заполненный единицами, а функция zeros – массив, заполненный нулями. Воспользоваться этими функциями очень просто и эффективно.
Для создания массива с помощью функции ones или zeros необходимо указать желаемый размер массива в виде вектора. Например, если мы хотим создать одномерный массив из 5 элементов, мы можем воспользоваться следующим кодом:
arr = ones(1, 5);
В данном примере массив arr будет иметь размерность 1×5 и будет состоять из пяти единиц. Аналогично, чтобы создать массив из нулей, можно использовать функцию zeros:
arr = zeros(1, 5);
Таким образом, создание массива с помощью функций ones и zeros является простым и эффективным способом и очень полезно при разработке алгоритмов и анализе данных в Matlab.
Эффективные способы задания массива в Matlab
Matlab предлагает несколько эффективных способов задания массива, которые могут сэкономить время программиста и улучшить производительность кода.
- Однострочное задание массива: в Matlab можно создать массив, перечисляя его элементы в одной строке, разделяя их пробелом или запятой. Например, чтобы задать массив из трех элементов – 2, 4 и 6, можно написать: A = [2, 4, 6]. Такой способ инициализации массива эффективен и короток, особенно для небольших массивов.
- Задание массива с использованием диапазона: в Matlab можно задать массив, используя диапазон значений. Например, чтобы создать массив, содержащий элементы от 1 до 10, можно написать: A = 1:10. Такой способ задания массива полезен, когда нужно быстро создать массив с определенным диапазоном значений.
- Автоматическое заполнение массива: в Matlab есть возможность заполнить массив заданным числовым или текстовым значением. Например, чтобы создать массив из пяти элементов, содержащих значение 0, можно написать: A = zeros(1, 5). Такой способ эффективен, когда нужно быстро создать массив большого размера и заполнить его определенным значением.
- Генерация случайных массивов: Matlab имеет встроенные функции для генерации случайных массивов. Например, чтобы создать массив из 100 случайных чисел от 0 до 1, можно написать: A = rand(1, 100). Такой способ задания массива полезен, когда нужно сгенерировать случайные данные для расчетов или экспериментов.
Использование эффективных способов задания массива в Matlab позволяет сократить количество кода, улучшить читаемость программы и повысить производительность выполнения. При выборе способа задания массива следует учитывать размерность массива, его элементы и конкретные требования к коду.
Использование оператора линейного присваивания
Оператор линейного присваивания в MATLAB – это один из основных способов инициализации массивов. С его помощью можно легко и эффективно создавать и заполнять массивы любого размера и типа данных.
Синтаксис оператора линейного присваивания в MATLAB выглядит следующим образом:
имя_массива = выражение;
Выражение может быть как константой, так и выражением, включающим математические операции и функции. Также можно использовать другие массивы в качестве выражения для инициализации нового массива.
Примеры использования оператора линейного присваивания:
- Инициализация массива с помощью постоянного значения:
- a = 5; – создание массива a размером 1×1 и присваивание ему значение 5.
- b = 1:5; – создание массива b размером 1×5 и присваивание ему значения от 1 до 5.
- c = [1, 2, 3, 4]; – создание массива c размером 1×4 и присваивание ему значений 1, 2, 3, 4.
Таким образом, оператор линейного присваивания позволяет удобно и быстро задавать массивы в MATLAB, используя как постоянные значения, так и выражения. Этот метод особенно полезен при работе с большими массивами и при написании скриптов и функций, где требуется задать массивы с определенными значениями.
Инициализация массива с помощью функции linspace и logspace
В Matlab для инициализации массивов с равными интервалами значений можно использовать функции linspace и logspace.
Функция linspace создает массив с равномерно распределенными значениями между указанными границами. Синтаксис функции имеет вид: linspace(start, stop, n), где start и stop задают начальное и конечное значение массива, а n определяет количество элементов массива. Например, чтобы создать массив с 5 значениями от 0 до 10, можно использовать выражение: linspace(0, 10, 5).
Функция logspace позволяет создать массив с логарифмически увеличивающимися значениями. Синтаксис функции имеет вид: logspace(start, stop, n), где start и stop задают начальное и конечное значение массива в логарифмической шкале, а n определяет количество элементов массива. Например, чтобы создать массив с 5 значениями, начиная с 10^1 и заканчивая 10^3, можно использовать выражение: logspace(1, 3, 5).
Оба этих метода инициализации массивов очень удобны в использовании и позволяют быстро создавать нужные значения для дальнейшей обработки данных в Matlab.
Заполнение массива с помощью случайных чисел
В Matlab существует несколько способов заполнить массив случайными числами. Один из самых простых способов – это использование функции rand. Функция rand возвращает случайное число от 0 до 1.
Если требуется заполнить массив случайными числами в заданном диапазоне, можно использовать функцию randi. Функция randi генерирует случайное целое число в заданном диапазоне.
Если нужно заполнить массив случайными числами с плавающей точкой, которые подчиняются определенному распределению, можно воспользоваться функциями randn и randperm. Функция randn возвращает случайные числа с нормальным распределением, а функция randperm возвращает случайную перестановку заданного диапазона чисел.
Для более сложных случаев, когда требуется заполнение массива случайными числами с определенными свойствами, можно воспользоваться функцией randi в сочетании с циклами и условными операторами. Это позволяет управлять процессом генерации случайных чисел и выбирать те, которые соответствуют определенным условиям.
Многомерные массивы
Многомерный массив в MATLAB® является массивом больше чем с двумя размерностями. В матрице эти две размерности представлены строками и столбцами.
Каждый элемент задан двумя индексами, индексом строки и индексом столбца. Многомерные массивы являются расширением 2D матриц и используют дополнительные индексы для индексации. Трехмерный массив, например, использует три индекса. Первые два точно так же, как матрица, но третья размерность представляет страницы или листы элементов.
Создание многомерных массивов
Можно создать многомерный массив путем создания 2D матрицы сначала, и затем расширения его. Например, сначала задайте 3х3 матрицу как первую страницу в трехмерном массиве.
A = [1 2 3; 4 5 6; 7 8 9]
A = 3×3 1 2 3 4 5 6 7 8 9Теперь добавьте вторую страницу. Для этого присвойте другую 3х3 матрицу значению индекса 2 в третьей размерности. Синтаксис A(. 2) использует двоеточие в первых и вторых измерениях, чтобы включать все строки и все столбцы с правой стороны присвоения.
A(. 2) = [10 11 12; 13 14 15; 16 17 18]
A = A(. 1) = 1 2 3 4 5 6 7 8 9 A(. 2) = 10 11 12 13 14 15 16 17 18
cat функция может быть полезным инструментом для создания многомерных массивов. Например, создайте новый трехмерный массив B путем конкатенации A с третьей страницей. Первый аргумент указывает который размерность конкатенировать вперед.
B = cat(3,A,[3 2 1; 0 9 8; 5 3 7])
B = B(. 1) = 1 2 3 4 5 6 7 8 9 B(. 2) = 10 11 12 13 14 15 16 17 18 B(. 3) = 3 2 1 0 9 8 5 3 7
Иначе быстро расширить многомерный массив путем присвоения одного элемента целой странице. Например, добавьте четвертую страницу в B это содержит все нули.
B(. 4) = 0
B = B(. 1) = 1 2 3 4 5 6 7 8 9 B(. 2) = 10 11 12 13 14 15 16 17 18 B(. 3) = 3 2 1 0 9 8 5 3 7 B(. 4) = 0 0 0 0 0 0 0 0 0
Доступ к элементам
Для доступа к элементам в многомерном массиве используйте целочисленные индексы, так же как для векторов и матриц. Например, найдите 1,2,2 элемента A , который находится в первой строке, втором столбце и второй странице A .
A = A(. 1) = 1 2 3 4 5 6 7 8 9 A(. 2) = 10 11 12 13 14 15 16 17 18
elA = A(1,2,2)
elA = 11
Используйте вектор индекса [1 3] во втором измерении, чтобы получить доступ только к первым и последним столбцам каждой страницы A .
C = A(:,[1 3],:)
C = C(. 1) = 1 3 4 6 7 9 C(. 2) = 10 12 13 15 16 18
Чтобы найти вторые и третьи строки каждой страницы, используйте оператор двоеточия, чтобы создать ваш вектор индекса.
D = A(2:3. )
D = D(. 1) = 4 5 6 7 8 9 D(. 2) = 13 14 15 16 17 18
Управление массивами
Элементы многомерных массивов могут быть перемещены во многих отношениях, похожие на векторы и матрицы. reshape перестановка , и squeeze полезные функции для реорганизации элементов. Рассмотрите трехмерный массив с двумя страницами.
Изменение размерность многомерного массива может быть полезно для выполнения определенных операций или визуализации данных. Используйте reshape функционируйте, чтобы перестроить элементы трехмерного массива в 6 5 матрица.
A = [1 2 3 4 5; 9 0 6 3 7; 8 1 5 0 2]; A(. 2) = [9 7 8 5 2; 3 5 8 5 1; 6 9 4 3 3]; B = reshape(A,[6 5])
B = 6×5 1 3 5 7 5 9 6 7 5 5 8 5 2 9 3 2 4 9 8 2 0 3 3 8 1 1 0 6 4 3reshape действует по столбцам, создавая новую матрицу путем взятия последовательных элементов вниз каждый столбец A , Начиная с первой страницы, затем перемещающейся во вторую страницу.
Сочетания используются, чтобы перестроить порядок размерностей массива. Считайте трехмерный массив M .
M(. 1) = [1 2 3; 4 5 6; 7 8 9]; M(. 2) = [0 5 4; 2 7 6; 9 3 1]
M = M(. 1) = 1 2 3 4 5 6 7 8 9 M(. 2) = 0 5 4 2 7 6 9 3 1
Используйте permute функционируйте, чтобы обменяться индексами строки и столбца на каждой странице путем определения порядка размерностей во втором аргументе. Исходные строки M теперь столбцы, и столбцы являются теперь строками.
P1 = permute(M,[2 1 3])
P1 = P1(. 1) = 1 4 7 2 5 8 3 6 9 P1(. 2) = 0 2 9 5 7 3 4 6 1
Точно так же обменяйтесь строкой и индексами страницы M .
P2 = permute(M,[3 2 1])
P2 = P2(. 1) = 1 2 3 0 5 4 P2(. 2) = 4 5 6 2 7 6 P2(. 3) = 7 8 9 9 3 1
При работе с многомерными массивами вы можете столкнуться с тем, который имеет ненужную размерность длины 1. squeeze функция выполняет другой тип манипуляции, которая устраняет размерности длины 1. Например, используйте repmat функция, чтобы создать 2 3 массивом 1 на 4, элементы которого — каждый 5, и чья третья размерность имеет длину 1.
A = repmat(5,[2 3 1 4])
A = A(. 1,1) = 5 5 5 5 5 5 A(. 1,2) = 5 5 5 5 5 5 A(. 1,3) = 5 5 5 5 5 5 A(. 1,4) = 5 5 5 5 5 5
szA = size(A)
szA = 1×4 2 3 1 4numdimsA = ndims(A)
numdimsA = 4
Используйте squeeze функция, чтобы удалить третью размерность, приводящую к трехмерному массиву.
B = squeeze(A)
B = B(. 1) = 5 5 5 5 5 5 B(. 2) = 5 5 5 5 5 5 B(. 3) = 5 5 5 5 5 5 B(. 4) = 5 5 5 5 5 5
szB = size(B)
szB = 1×3 2 3 4numdimsB = ndims(B)
numdimsB = 3
Похожие темы
- Создание, конкатенация и расширение матрицы
- Индексация массива
- Изменение и реорганизация массивов
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Создание Многомерных Массивов
При создании многомерных массивов можно воспользоваться теми же приемами, которые используются для двумерных матриц.
Создание массивов с использованием индексации
Один из способов формирования многомерного массива состоит в создании двумерного массива и соответствующего его расширения. Например, начнем с простого двумерного массива А . A = [5 7 8; 0 1 9; 4 3 6];
А является массивом 3х3, то есть его размерности строк и столбцов равны .тремДля добавления третьей размерности к А запишем A(. 2) = [1 0 4; 3 5 6; 9 8 7]. MATLAB выдаст A(:, : ,1) = 5 7 8 0 1 9 4 3 6 A(:, :, 2) = 1 0 4 3 5 6 9 8 7 Вы можете продолжить добавление строк, столбцов или страниц аналогичным образом. Расширение Многомерных Массивов. Для расширения любой размерности массива А нужно: · Увеличить или добавить соответствующий индекс и задать требуемые значения. · Добавить такое же количество элементов к соответствующим размерностям массива. Так, для числовых массивов все строки должны иметь одинаковое число элементов, все страницы должны иметь одинаковое число строк и столбцов и т.д.
Вы можете воспользоваться свойством скалярного распространения системыMATLAB , совместно с оператором двоеточия, для заполнения всей размерности единственным числом: A(:, :, 3) = 5; A(:, :, 3) ans =5 5 5 5 5 5 5 5 5 Для превращения А в четырехмерный массив размерности 3х3х3х2 введите A(:, :, 1, 2) = [1 2 3; 4 5 6; 7 8 9]; A(:, :, 2, 2) = [9 8 7; 6 5 4; 3 2 1]; A(:, :, 3, 2) = [1 0 1; 1 1 0; 0 1 1]; Отметим, что после первых двух вводов MATLAB добавляет в A требуемое количество нулей , чтобы поддержать соответствующие размеры размерностей(речь идет о первом элементе по четвертой размерности, то есть при четвертом индексе равном единице, массив А будет содержать три нулевые матрицы размера 3х3). Создание масивом с применением функций MATLAB-а. Вы можете использовать для создания многомерных массивов такие функцииMATLAB-а как randn, ones, и zeros , совершенно аналогично способу используемому для двумерных матриц. Каждый вводимый аргумент представляет размер соответствующей размерности в результирующем массиве. Например, для создания массива нормально распределенных случайных чисел размера 4х3х2 следует записать: B = randn(4,3,2). Для создания массива, заполненного единственным постоянным значением можно воспользоваться функцией repmat . Эта функция копирует массив(в нашем случае массив размера 1х1) вдоль вектора размерностей массива. B = repmat(5,[3 4 2]) B(:, :, 1) = 5 5 5 5 5 5 5 5 5 5 5 5 B(:, :, 2) = 5 5 5 5 5 5 5 5 5 5 5 5 Внимание! Любая размерность массива может иметь размер0, что просто дает пустой массив (empty array) . Так, размер 10х0х20 является допустимым размером многомерного массива. Создание многомерного массива при помощи функции cat.
Функция cat дает простой путь построения многомерных массивов; она объединяет набор массивов вдоль заданной размерности. B = cat (dim,A1,A2. ) где А1 , А2 и т.д. являются объединяемыми массивами. а dim есть размерность, вдоль которой они объединяются. Например, для создания нового массива из двух двумерных матриц при помощи функции cat запишем B = cat (3, [2 8; 0 5], [1 3; 7 9]) что дает трехмерный массив с двумя страницамиB(:, :, 1) = 2 8 0 5 B(:, :, 2) = 1 3 7 9 Функция cat принимает любые комбинации существующих и новых данных. Более того, вы можете осуществлять вложение данных функций. Приведенные ниже строки, к примеру, формируют четырехмерный массив:
A = cat (3, [9 2; 6 5], [7 1; 8 4]) B = cat (3, [3 5; 0 1], [5 6; 2 1]) D = cat (4, A, B, cat (3, [1 2; 3 4], [4 3; 2 1])). Функция cat автоматически добавляет, при необходимости, единичные индексы между размерностями. Например, для создания массива размера 2х2х1х2 можно ввести C = cat (4, [1 2; 4 5], [7 8; 3 2]) В данном случае функция cat вводит нужное число единичных размерностей для создания четырехмерного массива, чья последняя размерность не является единичной. Если бы аргумент dim был бы равен 5, последняя запись привела бы к массиву размера 2х2х1х1х2. Это добавляет еще одну единицу в индексации массива. Для обращения к значению8 в четырехмерном случае нужно применить следующую индексацию Индекс единичной размерности Определение характеристик многомерных массивов. Для получения информации об имеющихся многомерных массивах можно воспользоваться стандартными командами size (дает размер массива), ndims (дает количество размерностей) и whos (последняя команда дает подробную информацию о всех переменных рабочего пространства системы MATLAB). Для вышеприведенного примера мы получим size(C)
ans =2 2 1 2 ndims(C) ans = 4 Индексация Многие концепции, используемые в двумерном случае, распространяются также на многомерные массивы. Для выделения (обращения) к какому-либо одному элементу многомерного массива следует воспользоваться целочисленной индексацией. Каждый индекс указывает на соответствующую размерность: первый индекс на размерность строк, второй индекс на размерность столбцов, третий на первую размерность страниц и так далее. Рассмотрим массив случайных целых чисел nddata размера 10х5х3: nddata = fix (8*randn (10, 5, 3)); Для обращения к элементу (3,2) на странице 2 массива nddata нужно записать nddata(3,2,2). Вы можете также использовать векторы как массив индексов. В этом случае каждый элемент вектора должен быть допустимым индексом, то есть должен быть в пределах границ, определенных для размерностей массива. Так, для обращения к элементам(2,1), (2,3), и (2,4) на странице 3 массива nddata , можно записать nddata (2, [1 3 4], 3). Оператор двоеточия и индексирование многомерных массивов. Стандартная индексация MATLAB-а при помощи оператора двоеточия(colon) применима и в случае многомерных массивов. Например, для выбора всего третьего столбца страницы2 массива nddata используется запись nddata(:, 3, 2) . Оператор двоеточия также полезен и для выделения определенных подмножеств данных. Так, ввод nddata(2:3,2:3,1) дает массив (матрицу) размера 2х2, который является подмножеством данных на странице1 массива nddata . Эта матрица состоит из данных второй и третьей строки и сторого и третьего столбца первой стриницы многомерного массива. Оператор двоеточия может использоваться для индексации с обеих сторон записи. Например, для создания массива нулей размера 4х4 записываем: C = zeros (4,4) Теперь, чтобы присвоить значения подмножества2х2 массива nddata четырем элементам в центре массива С запишем C(2:3,2:3) = nddata (2:3,1:2,2) Устранение неопределенностей в многомерной индексации Некоторые выражения, такие как A(:, :, 2) = 1:10 Являются неоднозначными, поскольку они не обеспечивают достаточного объема информации относительно структуры размерности, в которую вводятся данные. В представленном выше случае, делается попытка задать одномерный вектор в двумерном объекте. В таких ситуациях MATLAB выдает сообщение об ошибке. Для устранения неопреденности, нужно
убедиться, что обеспечена достаточная информация о месе записи данных, и что как данные так и место назначения имеют одинаковую форму. Например, A(1. 2) = 1:10. Изменение формы (Reshaping) Если вы не меняете форму или размер, массивы в системе MATLAB сохраняют размерности, заданные при их создании. Вы можете изменить размер массива путем добавления или удаления элементов. Вы можете также изменить форму массива изменяя размерности строк, столбцов и страниц, при условии сохранения тех же элементов. Функция reshape выполняет указанную операцию. Для многомерных массивов эта функция имеет вид B = reshape (A, [s1 s2 s3 . ] ) где s1, s2 , и так далее характеризуют желаемый размер для каждой размерности преобразованной матрицы. Отметим, что преобразованный массив должен иметь то же число элементов, что и исходный массив (иными словами, произведение размеров массивов должно быть неизменным). Функция reshape «действует» вдоль столбцов. Она создает преобразованную матрицу путем взятия последовательных элементов вдоль каждого столбца исходной матрицы. Ниже в качестве примеров приведены несколько примеров массивов, которые могут быть получены из массива nddata (обратите внимание на размерности). B = reshape(nddata,[6 25])
C = reshape(nddata,[5 3 10]) D = reshape(nddata,[5 3 2 5]) Удаление единичных размерностей. Система MATLAB создает единичные размерности, когда вы задаете их при создании или преобразовании массива, или же в результате вычислений приводящих к появлению указанных размерностей. B = repmat (5, [2 3 1 4] ) ; size(B) ans = 2 3 1 4 Функция squeeze удаляет единичные размерности из массива. C = squeeze(B); size(C) ans = 2 3 4 Функция squeeze не оказывает воздействия на двумерные массивы– векторы-строки остаются строками. Вычисления с многомерными массивами Многие вычислительные и математические функцииMATLAB-а принимают в качестве аргументов многомерные массивы. Эти функции действуют на определенные размерности многомерных массивов, в частности, на отдельные элементы, векторы или матрицы. Действия над векторами Функции которые действуют над векторами, такие как sum, mean , и т.д., по умолчанию обычно действуют вдоль первой неединичной размерности многомерного массива. Многие из этих функций дают возможность задать размерность вдоль которой они действуют. Однако, есть и исключения. Например, функция cross , которая определяет векторное произведение двух векторов, действует вдоль первой неединичной размерности, имеющей размер 3. Внимание! Во многих случаях эти функции имеют другие ограничения на входные аргументы – например, некоторые функции, допускающие многомерные входные массивы, требуют чтобы массивы имели одинаковый размер. Поэлементное воздействие Те функции MATLAB-а, которые действуют поэлементно на двумерные массивы, такие как тригонометрические и экспоненциальные функции, работают совершенно аналогично и в многомерном случае. Например, функция sin возвращает массив того же размера, что и входной массив. Каждый элемент выходного массива является синусом соответствующего элемента входного массива. Аналогично, все арифметические, логические операторы и операторы отношения действуют с соответствующими элементами многомерных массивов (которые должны иметь одинаковые размеры каждой размерности). Если один из операндов является скаляром, а второй – скаляром, то операторы применяют скаляр ко всем элементам массива.
Действия над плоскостями и матрицами Функции, действующие над плоскостями или матрицами, такие как функции линейной алгебры или матричные функции в директории matfun , не принимают в качестве аргументов многомерные массивы. Иными словами, вы не можете использовать функции в директории matfun, или операторы * , ^, \, или /, с многомерными массивами. Попытка использования многомерных массивов или операндов в таких случаях приводит к сообщению об ошибке. Вы можете, тем не менее, применить матричные функции или операторы к матрицам внутри многомерных массивов. Например, сооздадим трехмерный массив А A = cat (3 , [1 2 3; 9 8 7; 4 6 5], [0 3 2; 8 8 4; 5 3 5], [6 4 7; 6 8 5; 5 4 3]); Применение функции eig ко всему многомерному массиву дает сообщение об ошибке: eig(A) . Error using è eig Input arguments must be 2-D. Вы можете, однако, приментиь функцию eig к отдельным плоскостям в пределах массива. Например, воспользуемся оператором двоеточия для выделения одной страницы (допустим, второй): eig(A(:, :, 2)) ans = –2.6260 12.9129 2.7131 Внимание! В первом случае, где не используется оператор двоеточия, для избежания ошибки нужно использовать функцию squeeze. Например, ввод eig (A(2. )) приводит к ошибке так как размер входа есть[1 3 3]. Выражение eig(squeeze(A(2, :, :))) , однако, передает функции eig допустимую двумерную матрицу. Организация данных в многомерных массивах Вы можете использовать два возможных варианта представления данных при помощ многомерных массивов: · Как плоскости (или страницы) двумерных данных. В дальнейшем вы можете обращаться с этими страницами как с матрицами. · Как многомерные данные. Например, вы можете иметь четырехмерный массив, где каждый элемент соответствует температуре или давлению воздуха, измеренным на равномерно распределенной трехмерной (пространственной) сетке в комнате. В качестве конкретного примера рассмотрим представление какого-либо изображения в формате RGB. Напомним, что в формате RGB изображение хранится в виде трех двумерных матриц одинакового размера, каждая из которых характеризует интенсивность одного цвета – красного (Red), зеленого (Green) и синего (Blue) — в соответствующей точке. Общая картина при этом получается в результате наложения трех указанных матриц. Для отдельного изображения, использование многомерных массивов является, вероятно, наиболее легким путем для запоминания данных и доступа к ним.
Пусть все изображение хранится в файле RGB . Для доступа к полной плоскости изображения в одном цвете, допустим – красном, следует записать red_plane = RGB (. 1); Для доступа к части всего изображения можно использовать запись subimage = RGB (20:40, 50:85, 🙂 Изображение в формате RGB является хорошим примером данных, для которых может потребоваться доступ к отдельным плоскостям, для операций типа фильтрации или просто демонстрации. В других задачах, однако, сами данные могут быть многомерными. Рассмотри, например, набор температур, измеренных на равномерной пространственной сетке какоголибо помещения.
В данном случае пространственное положение каждого значения температуры является составной частью набора данных, то есть физическое расположение в трехмерном пространстве является частью информации. Такие данные также весьма прспособлены для представления при помощи многомерных массивов (см.рисунок выше). Здесь, чтобы найти среднее значение всех измерений, то есть среднюю температуру воздуха в комнате, можно записать mean (mean (mean (TEMP))) где через TEMP обозначен массив четырехмерных данных. Дл получения вектора «серединных» температур (элемента (2,2)) комнаты на каждой странице, то есть в каждом сечении, запишем B = TEMP (2, 2, :). ОРГАНИЗАЦИЯ И ХРАНЕНИЕ ДАННЫХ Для хранения различных типов данных в системе MATLAB используются так называемые структуры (structure) и ячейки (cell). Структуры (иногда их называют массивами структур) служат для хранения массивов различных типов данных, организаванных по принципу поименованных полей. Ячейки (или массивы ячеек) являются специальным классом массивов системы MATLAB, чьи элементы состоят из ячеек, в которых могут храниться любые другие массивы данных, применяемые в MATLAB-е. Как структуры, так и ячейки обеспечивают иерархический механизм для хранения самых различных типов данных. Они отличаются друг от друга прежде всего способом организации базы данных. При использовании структур доступ к данным осуществляется при помощи наименований полей, тогда как в массивах ячеек доступ осуществляется при помощи матричной индексации. В приведенных ниже таблицах дается краткое описание функций MATLAB-а, предназначенных для работы с массивами структур и ячеек
Структуры Функция Описание fieldnames Получить имена полей getfield Получить содержание поля isfield Истинно, если поле есть в структуре isstruct Истинно, если структура rmfield Удалить поле setfield Установить содержимое поля struct Создать массив структур struct2cell Преобразовать структуру в массив ячеек Ячейки Функция Описание cell Создать массив ячеек cell2struct Преобразовать массив ячеек в структуру celldisp Показать содержимое массива ячеек cellfun Применить функцию к массиву ячеек cellplot Показать графическую структуру массива ячеек deal Обмен данными между любыми классами массивов iscell Истинно для массивов ячеек num2cell Преобразовать числовой масси в массив ячеек МАССИВЫ СТРУКТУР Структуры это массивы данных с поименованными«хранилищами» данных, называемыми п олями. Поля структуры могут содержать данные любого типа. Например, одно поле может содержать текстовую строку, представляющую имя (name), второе поле может содержать скалярную переменную, являющуюся счетом за лечение(billing), третье может содержать матрицу результатов медицинских анализов (test) и так далее. Как и обычным масивам данных, структурам присущи основные свойства массивов. Одна структура является структурой размера1х1, точно так же как число5 является числовым массивом размера 1х1. Вы можете строить структуры с лбой допустимой размерностью или формы, включая многомерные массивы структур. Создание массивов структур Имеется два следующих способа создания структур: · Путем использования операторов присваивания. · С использованием функции struct . Создание массивов структур с применением операторов присваивания. Вы можете построить простую структуру размера 1х1 путем прямого присваивания значений индивидуальным полям. MATLAB при этом автоматически конструирует соответствующую
структуру. Например, создадим 1х1 структуру данных пациента лечебницы, показанную в начале данного раздела. Для этого следует ввести следующие записи: patient.name = ‘John Doe’; patient.billing = 127.00; patient.test = [79 75 73; 180 178 177.5; 220 210 205]; Если ввести теперь в командной строке запись patient то MATLAB ответит name: ‘John Doe’ billing: 127 test: [3×3 double] patient является массивом, представляющим собой структуру с тремя полями. Для расширения данного массива нужно просто добавить соответствующие индексы после имени структуры: patient(2).name = ‘Ann Lane’; patient(2).billing = 28.50; patient(2).test = [68 70 68; 118 118 119; 172 170 169]; Структура patient имеет теперь размер [1 2]. Отметим, что если массив структур содержит более одного элемента, то MATLAB уже не выводит на экран содержание отдельных полей при вводе имени структуры. Взамен, на дисплей выдаются общая информация о содержимом структуры, то есть имена полей: Patient patient = 1×2 struct array with fields: name billing test Для получения данной информации вы можете также использовать функцию fieldnames . Данная функция выдает массив ячеек содержащих названия полей в форме строки. Если вы расширяете структуру, MATLAB запалняет те поля, в которые вы не ввели данные, пустыми матрицами так, что: · Все структуры в массиве имеют одинаковое число полей. · Все соответствующие поля имеют одинаковые имена. Например, при вводе patient(3).name = ‘Alan Johnson’
структура patient принимает размер 1х3. При это оба поля patient(3).billing и patient(3).test содержат пустые матрицы. Внимание! Размеры данных в одноименных полях могут быть различными. В нашем примере со структурой patient поля name могут иметь различную длину, поля test могут содержать массивы числовых данных различных размеров и так далее. Создание массива структур с использованием функции struct. Вы можете заранее создать массив структур применив функцию struct . Ее основная форма имеет вид str_array = struct (‘поле1′,знач1,’поле2’,знач2, . ) где аргументами являются имена полей и их соответствующие значения. Значением поля может быть или одно значение, представленное любой допустимой конструкцией в MATLAB-е, или массив ячеек данных(массивы ячеек рассмотрены в следующем разделе). Все значения полей в списке аргументов должны иметь одинаковый вид(единственное значение или массив ячеек). Вы можете использовать различные методы для задания массива структур. Эти методы отличаются способом инициализации полей структуры. В качестве примера расмотрим задание структуры размера 1х3 с именем weather (погода) , имеющую поля temp ( температура ) и rainfall ( дождевые осадки ). Три различные способа задания такой структуры даны в приведенной ниже таблице.
Метод Синтаксис Задание Функция struct weather(3) = Структура weather(3) struct(‘temp’,72,’rainfall’,0.0); инициализируется с указан- ными значениями полей. По- ля остальных двух структур в массиве, weather(1) и weather(2), содержат в качес- тве данных пустые матрицы. Сочетание функций struct weather = Все структуры в массиве и repmat repmat (struct (‘temp’, 72, weather инициализируются с ‘rainfall’, 0.0), 1, 3); использованием одинаковых значений одноименных полей. Функция struct с weather = Структуры в массиве weather использованием синтаксиса struct (‘temp’,, инициализируются с разными ячеек ‘rainfall’, ); значениями полей, заданных массивом ячеек. Обращение к данным в массивах структур. Используя индексацию массива структур, можно осуществить обращение к данным любого поля или любого элемента поля в массиве структуры. Аналогичным образом, вы можете задать значение любого поля или элемента поля структуры. В качестве примера, используемого в данном разделе, рассмотрим структуру, представленную на приведенном ниже рисунке.
Вы можете обратиться к подмассивам путем дабавления стандартной индексации к имени массива структур. Например, следующая запись приводит к структуре размера 1х2 mypatients = patient(1:2) 1×2 struct array with fields: name billing test Первая структура в массиве mypatients совпадает с первой структурой в массиве patient : mypatients(1) ans = name: ‘John Doe’ billing: 127 test: [3×3 double]. Для обращения к полю определенной структуры, нужно добавить точку ( . ) после имени структуры, с указанием далее имени поля: str = patient(2) . name str = Ann Lane Для обращения к элементам внутри полей, следует добавить требуемые индексы к имени поля. Если поле содержит числовой массив, нужно использовать индексация цифровых массивов. Если поле содержит массив ячеек, используйте соответствующую индексацию ячеек и так далее. Например, test2b = patient(3).test(2,2) test2b = 153
Аналогичную форму записи следует использовать и для задания значений переменны внутри поля, например, patient(3).test(2,2) = 7 Вы можете также одновременно извлечь данные одноименных полей многомерной структуры. Например, запись ниже создает вектор1х3, содержащий все значения счетов полей billing fields. bills = [patient.billing] bills = 127.0000 28.5000 504.7000 Аналогично, вы можете создать массив ячеек, содержащий данные температур test для первых двух структур. tests = tests = [3×3 double] [3×3 double] Обращение к полям структуры с применением функций setfield и getfield Прямая индексация обычно является наиболее эффективным способом задания или получения значений полей структуры. Если, однако, вы знаете только название поля в виде строки, например, если вы использовали функцию fieldnames для получения имени поля в пределах M-файла – то для указанных операций с данными этих полей можно также применить функ- ции setfield и getfield . Функция getfield позволяет получить значение или значения поля или элемента поля и имеет следующий синтаксис f = getfield(array,,’field’,)
где индекс field_index является необязательным, а array_index является необязательным для массива структур размера 1х1. Данный синтаксис соответствует записи f = array(array_index).field(field_index) Например, для обращения к полю name во второй структуре массива patient запишем str = getfield(patient,,’name’) Аналогично, функция setfield дает возможность задать значения полей используя синтаксис f = setfield (array,,’field’,,value) Определение размера массива структур Для получения размера массива структур или размера любого поля структуры. можно воспользоваться функцией size . При вводе в качестве аргумента функции size имени структуры, данная функция возвращает вектор размерностей массива. Если задать аргумент в форме
Документация
Создайте вектор символов путем включения последовательности символов в одинарные кавычки.
chr = 'Hello, world'chr = 'Hello, world'
Векторами символов является 1 -by- n массивы типа char . В программировании строка является часто используемым термином для 1 -by- n массив символов. Однако запуск в R2016b MATLAB ® также обеспечивает тип данных string , таким образом , 1 -by- n символьные массивы упоминается как векторы символов в документации MATLAB.
whos chrName Size Bytes Class Attributes chr 1x12 24 char
Если текст содержит одну кавычку, включайте две кавычки при присвоении вектора символов.
newChr = 'You''re right'newChr = 'You're right'
Функции, такие как uint16 , преобразовывают символы в свои цифровые коды.
chrNumeric = uint16(chr)
chrNumeric = 1×12 uint16 row vector 72 101 108 108 111 44 32 119 111 114 108 100
Функция char преобразовывает целочисленный вектор назад в символы.
chrAlpha = char([72 101 108 108 111 44 32 119 111 114 108 100])
chrAlpha = 'Hello, world'
Создание прямоугольного символьного массива
Символьными массивами является m -by- n массивы символов, где m является не всегда 1 . Можно соединить два или больше вектора символов вместе, чтобы создать символьный массив. Это называется concatenation и объяснено для числовых массивов в Создании, конкатенации и расширении матрицы. Как с числовыми массивами, можно объединить символьные массивы вертикально или горизонтально создать новый символьный массив.
Однако рекомендуется, чтобы вы сохранили векторы символов в массиве ячеек, вместо того, чтобы использовать m -by- n символьные массивы. Массивы ячеек являются гибкими контейнерами, которые позволяют вам легко хранить векторы символов переменной длины.
Объединение векторов символов вертикально
Чтобы объединить векторы символов в двумерный символьный массив, используйте квадратные скобки или функцию char .
- Примените оператор конкатенации MATLAB, [] . Разделите каждую строку точкой с запятой ( ; ). Каждая строка должна содержать то же количество символов. Например, объедините три вектора символов равной длины:
devTitle = ['Thomas R. Lee'; . 'Sr. Developer'; . 'SFTware Corp.']
devTitle = 3×13 char array 'Thomas R. Lee' 'Sr. Developer' 'SFTware Corp.'
Если векторы символов имеют различные длины, клавиатуру с пробелами по мере необходимости. Например:
mgrTitle = ['Harold A. Jorgensen '; . 'Assistant Project Manager'; . 'SFTware Corp. ']
mgrTitle = 3×25 char array 'Harold A. Jorgensen ' 'Assistant Project Manager' 'SFTware Corp. '
mgrTitle = char('Harold A. Jorgensen', . 'Assistant Project Manager', 'SFTware Corp.')
mgrTitle = 3×25 char array 'Harold A. Jorgensen ' 'Assistant Project Manager' 'SFTware Corp. '
Векторы комбинированного символа горизонтально
Чтобы объединить векторы символов в вектор одной строки, используйте квадратные скобки или функцию strcat .
- Примените оператор конкатенации MATLAB, [] . Разделите векторы вводимого символа запятой или пробелом. Этот метод сохраняет любые конечные пробелы во входных массивах.
name = 'Thomas R. Lee'; title = 'Sr. Developer'; company = 'SFTware Corp.'; fullName = [name ', ' title ', ' company]
MATLAB возвращается
fullName = 'Thomas R. Lee, Sr. Developer, SFTware Corp.'
name = 'myname '; domain = 'mydomain '; ext = 'com '; address = strcat(name, '@', domain, '.', ext)
MATLAB возвращается
address = 'myname@mydomain.com'
Идентификация символов
Используйте любую из следующих функций, чтобы идентифицировать символьный массив или определенные символы в символьном массиве.
Функция Описание ischar Определите, является ли вход символьным массивом isletter Найдите все алфавитные буквы в массиве вводимого символа isspace Найдите все пробелы в массиве вводимого символа isstrprop Найдите все символы определенной категории Найдите пробелы в векторе символов.
chr = 'Find the space characters in this character vector'; % | | | | | | | % 5 9 15 26 29 34 44 find(isspace(chr))
ans = 5 9 15 26 29 34 44
Работа с пробелами
Функция blanks создает вектор символов пробелов. Создайте вектор 15 пробелов. Векторы символов всегда отображаются между одинарными кавычками.
chr = blanks(15)
Вставьте несколько символов непробела посреди вектора знака пробела.
chr(6:10) = 'AAAAA'chr = ' AAAAA '
Можно выровнять по ширине расположение этих символов к левому или правому использованию функции strjust :
chrLeft = strjust(chr,'left')chrLeft = 'AAAAA '
chrRight = strjust(chr,'right')chrRight = ' AAAAA'
Удалите все символы конечного пробела с deblank :
chrDeblank = deblank(chr)
chrDeblank = ' AAAAA'
Удалите все продвижение и конечные пробелы с strtrim :
chrTrim = strtrim(chr)
chrTrim = 'AAAAA'
Расширение символьных массивов
Generally, MathWorks ® не рекомендует расширить размер существующего символьного массива путем присвоения дополнительных символов индексам вне границ массива, таким образом, что часть массива становится заполненной с нулями.
Смотрите также
Похожие темы
- Представление текста с символьными массивами и массивами строк
- Поиск и замена текста
- Сравнение текста
- Форматирование текста
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2019 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
