Векторное создание, индексирование массивов и for
- итерация цикла
Двоеточие является одним из самых полезных операторов в MATLAB®. Это может создать векторы, нижние массивы, и задать итерации for
.
x = j:k x = j:i:k A(:,n) A(m,:) A(:) A(j:k)
создает расположенный с интервалами модулем векторный x = j:k
x
с элементами [j,j+1,j+2,...,j+m]
где m = fix(k-j)
. Если j
и k
являются оба целыми числами, то это - просто [j,j+1,...,k]
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)
, (m: A:
)
, и (j:k)
общие выражения индексации для матрицы А
, которые содержат двоеточие. Когда вы используете двоеточие в качестве индекса в выражении индексации, такой как (: n)
, это действует как сокращение, чтобы включать все индексы в конкретное измерение массива. Также распространено создать вектор с двоеточием в целях индексации, такой как (j:k).
Некоторые выражения индексации комбинируют оба использования двоеточия, как в (: J: k.
Общие выражения индексации, которые содержат двоеточие:
A:, n)
является энным
столбцом матрицы А
.
A(m,:)
является m
th строка матричного A
.
A:: p)
является pth
страницей трехмерного массива A
.
A:)
изменяет все элементы массива
в вектор отдельного столбца. Это не имеет никакого эффекта, если A
уже является вектором - столбцом.
A:, :)
изменяет все элементы массива
в двумерную матрицу. Это не имеет никакого эффекта, если A
уже является матрицей или вектором.
A(j:k)
использует векторный j:k
, чтобы индексировать в A
и поэтому эквивалентен векторному [A(j), A(j+1), ..., A(k)]
.
A: J: k)
включает все индексы в первую размерность, но использует вектор j:k
, чтобы индексировать во втором измерении. Это возвращает матрицу со столбцами [(: j), (: j+1)... A: K.
Страница с описанием for
имеет описание того, как использовать :
в контексте инструкций циклов.
linspace
подобен оператору двоеточия :
, но это дает прямой контроль над числом точек и всегда включает конечные точки. Родственная функция logspace
генерирует логарифмически распределенные значения.
Когда вы создаете вектор, чтобы индексировать в массив ячеек или массив структур (такой как
или cellName{:}
), MATLAB возвращает несколько выходных параметров в списке, разделенном запятыми. Для получения дополнительной информации смотрите, Как Использовать Списки, разделенные запятыми.structName(:).fieldName