exponenta event banner

двоеточие,:

Создание вектора, подстрочный индекс массива и for-итерация цикла

Синтаксис

x = j:k
x = j:i:k
A(:,n)
A(m,:)
A(:)
A(j:k)

Описание

Двоеточие является одним из наиболее полезных операторов в MATLAB ®. Он может создавать векторы, подстрочные массивы и указыватьfor итерации.

пример

x = j:k создает разнесенный по единицам вектор x с элементами [j,j+1,j+2,...,j+m] где m = fix(k-j). Если j и k оба целые числа, то это просто [j,j+1,...,k].

пример

x = j:i:k создает вектор с регулярным интервалом x использование i как приращение между элементами. Векторные элементы примерно равны [j,j+i,j+2*i,...,j+m*i] где m = fix((k-j)/i). Однако, если i не является целым числом, тогда арифметика с плавающей запятой играет роль в определении, colon включает конечную точку k в векторе, так как k может быть не совсем равно j+m*i. Если указать нескалярные массивы, MATLAB интерпретирует j:i:k как j(1):i(1):k(1).

x = colon(j,k) и x = colon(j,i,k) являются альтернативными способами выполнения команд j:k и j:i:k, но используются редко. Эти синтаксисы обеспечивают перегрузку операторов для классов.

пример

A(:,n), A(m,:), A(:), и A(j:k) являются общими индексирующими выражениями для матрицы A которые содержат двоеточие. При использовании двоеточия в качестве подстрочного индекса в индексирующем выражении, например A(:,n), он действует как сокращенный, чтобы включить все подстрочные индексы в конкретное измерение массива. Также принято создавать вектор с двоеточием для целей индексирования, например A(j:k). Некоторые индексные выражения объединяют оба использования двоеточия, как в A(:,j:k).

Обычные индексные выражения, содержащие двоеточие:

  • A(:,n) является nТретий столбец матрицы A.

  • A(m,:) является m4-я строка матрицы A.

  • A(:,:,p) является pвосьмая страница трехмерного массива A.

  • A(:) изменяет форму всех элементов A в один вектор-столбец. Это не имеет эффекта, если A уже является вектором столбца.

  • A(:,:) изменяет форму всех элементов A в двумерную матрицу. Это не имеет эффекта, если A уже является матрицей или вектором.

  • A(j:k) использует вектор j:k для индексации в A и, следовательно, эквивалентен вектору [A(j), A(j+1), ..., A(k)].

  • A(:,j:k) включает все подстрочные индексы в первом измерении, но использует вектор j:k для индексирования во втором измерении. Возвращает матрицу со столбцами [A(:,j), A(:,j+1), ..., A(:,k)].

Примеры

свернуть все

Создайте единичный вектор чисел от 1 до 10. Оператор двоеточия использует приращение по умолчанию + 1.

x = 1:10
x = 1×10

     1     2     3     4     5     6     7     8     9    10

Создайте векторы, увеличивающие или уменьшающие на заданное значение.

Создайте вектор, элементы которого увеличиваются на 0,1.

x = 0:0.1:1
x = 1×11

         0    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.9000    1.0000

Создайте вектор, элементы которого уменьшаются на -2.

y = 10:-2:0
y = 1×6

    10     8     6     4     2     0

Изучение нескольких способов индексации матрицы с помощью двоеточия :.

Создайте матрицу 3 на 3. Проиндексировать первую строку.

A = magic(3)
A = 3×3

     8     1     6
     3     5     7
     4     9     2

A(1,:)
ans = 1×3

     8     1     6

Проиндексировать второй и третий столбцы.

A(:,2:3)
ans = 3×2

     1     6
     5     7
     9     2

Преобразование матрицы в вектор-столбец.

A(:)
ans = 9×1

     8
     3
     4
     1
     5
     9
     6
     7
     2

В контексте for-loop, двоеточие указывает итерации цикла.

Написать for-контур, который квадратурит число для значений n от 1 до 4.

for n = 1:4
    n^2
end
ans = 1
ans = 4
ans = 9
ans = 16

Входные аргументы

свернуть все

Начальное значение вектора, указанное как вещественный числовой скаляр. Если j < k чтобы выходной вектор не был пустым, то j является первым элементом вектора.

Пример: x = 0:5

Пример: x = 0:0.5:5

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | datetime | duration

Конечное значение вектора, заданное как вещественный числовой скаляр. k является последним значением в векторе, только если линии приращения до точно расположены на k. Например, вектор 0:5 включает 5 в качестве последнего значения, но 0:0.3:1 не включает значение 1 в качестве последнего значения, поскольку приращение не совпадает с конечной точкой.

Пример: x = 0:5

Пример: x = 0:0.5:5

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | datetime | duration

Приращение между векторными элементами, заданное как вещественный числовой скаляр.

Пример: x = 0:0.5:5

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | datetime | duration

Выходные аргументы

свернуть все

Регулярно разнесенный вектор, возвращаемый как вектор строки. Если j > k, то x = j:k является пустой матрицей. В более общем смысле, синтаксис x = j:i:k возвращает пустую матрицу, если:

  • i, j, или k является пустым входом

  • i == 0

  • i > 0 и j > k

  • i < 0 и j < k

Совет

  • for справочная страница содержит описание использования : в контексте операторов цикла.

  • linspace аналогичен оператору двоеточия :, но он дает прямой контроль над количеством точек и всегда включает конечные точки. Родственная функция logspace генерирует логарифмически разнесенные значения.

  • При создании вектора для индексирования в массив ячеек или структурный массив (например, cellName{:} или structName(:).fieldName), MATLAB возвращает несколько выходов в списке, разделенном запятыми. Дополнительные сведения см. в разделе Использование списков, разделенных запятыми.

Расширенные возможности

.
Представлен до R2006a