colon, :

Создание векторов, индексирование массивов и 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,:) является mпервая строка матрицы 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 аналогичен оператору двоеточия :, но он дает прямой контроль над числом точек и всегда включает в себя конечные точки. The родственной функции logspace генерирует логарифмически разнесенные значения.

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

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

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