Создание векторов, индексирование массивов и for
-итерация цикла
x = j:k x = j:i:k A(:,n) A(m,:) A(:) A(j:k)
Двоеточие является одним из самых полезных операторов в MATLAB®. Он может создавать векторы, индексные массивы и задавать for
итераций.
создает регулярно разнесенный вектор 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)]
.
for
страница с описанием имеет описание того, как использовать :
в контексте операторов цикла.
linspace
аналогичен оператору двоеточия :
, но он дает прямой контроль над числом точек и всегда включает в себя конечные точки. The родственной функции logspace
генерирует логарифмически разнесенные значения.
Когда вы создаете вектор для индекса в массив ячеек или массив структур (например
или cellName
{:}
), MATLAB возвращает несколько выходы в списке, разделенном запятыми. Дополнительные сведения см. в разделе «Как использовать разделенные списками , разделенными запятыми».structName
(:). fieldName