Векторное создание, индексирование массивов и for - итерация цикла
Двоеточие является одним из самых полезных операторов в MATLAB®. Это может создать векторы, нижние массивы, и задать итерации for.
x = j:k x = j:i:k A(:,n) A(m,:) A(:) A(j:k)
создает расположенный с равными интервалами векторный x = j:i:kx с помощью 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 th столбец матричного A.
A(m,:) является m th строка матричного A.
A(:,:,p) является p th страница 3D массива 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 подобен оператору двоеточия :, но это дает прямой контроль над числом точек и всегда включает конечные точки. Родственная функция logspace генерирует логарифмически распределенные значения.
Когда вы создаете вектор, чтобы индексировать в массив ячеек или массив структур (такой как или cellName{:}), MATLAB возвращает несколько выходных параметров в списке, разделенном запятыми. Для получения дополнительной информации смотрите, Как Использовать Списки, разделенные запятыми.structName(:).fieldName