Vector creation, array subscripting, and for-loop iteration (2024)

Vector creation, array subscripting, and for-loopiteration

collapse all in page

Syntax

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

Description

The colon is one of the most useful operators in MATLAB®.It can create vectors, subscript arrays, and specify for iterations.

example

x = j:k createsa unit-spaced vector x with elements [j,j+1,j+2,...,j+m] where m= fix(k-j). If j and k areboth integers, then this is simply [j,j+1,...,k].

example

x = j:i:k creates a regularly-spaced vector x using i as the increment between elements. The vector elements are roughly equal to [j,j+i,j+2*i,...,j+m*i] where m = fix((k-j)/i). However, if i is not an integer, then floating point arithmetic plays a role in determining whether colon includes the endpoint k in the vector, since k might not be exactly equal to j+m*i.

x = colon(j,k) and x = colon(j,i,k) arealternate ways to execute the commands j:k and j:i:k,but are rarely used. These syntaxes enable operator overloading forclasses.

example

A(:,n), A(m,:), A(:),and A(j:k) are common indexing expressions fora matrix A that contain a colon. When you use acolon as a subscript in an indexing expression, such as A(:,n),it acts as shorthand to include all subscriptsin a particular array dimension. It is also common to create a vectorwith a colon for the purposes of indexing, such as A(j:k).Some indexing expressions combine both uses of the colon, as in A(:,j:k).

Common indexing expressions that contain a colon are:

  • A(:,n) is the nthcolumn of matrix A.

  • A(m,:) is the mthrow of matrix A.

  • A(:,:,p) is the pthpage of three-dimensional array A.

  • A(:) reshapes all elements of A intoa single column vector. This has no effect if A isalready a column vector.

  • A(:,:) reshapes all elements of A intoa two-dimensional matrix. This has no effect if A isalready a matrix or vector.

  • A(j:k) uses the vector j:k toindex into A and is therefore equivalent to thevector [A(j), A(j+1), ..., A(k)].

  • A(:,j:k) includes all subscriptsin the first dimension but uses the vector j:k toindex in the second dimension. This returns a matrix with columns [A(:,j),A(:,j+1), ..., A(:,k)].

Examples

collapse all

Create Unit-Spaced Vector

Open Live Script

Create a unit-spaced vector of numbers between 1 and 10. The colon operator uses a default increment of +1.

x = 1:10
x = 1×10 1 2 3 4 5 6 7 8 9 10

Create Vector with Specified Increment

Open Live Script

Create vectors that increment or decrement by a specified value.

Create a vector whose elements increment by 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

Create a vector whose elements decrement by -2.

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

Index Matrix Rows and Columns

Open Live Script

Examine several ways to index a matrix using a colon :.

Create a 3-by-3 matrix. Index the first row.

A = magic(3)
A = 3×3 8 1 6 3 5 7 4 9 2
A(1,:)
ans = 1×3 8 1 6

Index the second and third column.

A(:,2:3)
ans = 3×2 1 6 5 7 9 2

Reshape the matrix into a column vector.

A(:)
ans = 9×1 8 3 4 1 5 9 6 7 2

Specify for-Loop Iterations

Open Live Script

In the context of a for-loop, the colon specifies the loop iterations.

Write a for-loop that squares a number for values of n between 1 and 4.

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

Input Arguments

collapse all

jStarting vector value
scalar

Starting vector value, specified as a real numeric scalar. If j< k so that the output vector is not empty, then j isthe first element in the vector.

Example: x = 0:5

Example: x= 0:0.5:5

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | datetime | duration

kEnding vector value
scalar

Ending vector value, specified as a real numeric scalar. k isthe last value in the vector only when the increment lines up to exactlyland on k. For example, the vector 0:5 includes5 as the last value, but 0:0.3:1 does not includethe value 1 as the last value since the increment does not line upwith the endpoint.

Example: x = 0:5

Example: x= 0:0.5:5

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | datetime | duration

iIncrement between vector elements
1 (default) | scalar

Increment between vector elements, specified as a real numericscalar.

Example: x = 0:0.5:5

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | datetime | duration

Output Arguments

collapse all

x — Regularly-spaced vector
row vector

Regularly-spaced vector, returned as a row vector. If j> k, then x = j:k is an empty matrix.More generally, the syntax x = j:i:k returns anempty matrix when:

  • i, j, or k isan empty input

  • i == 0

  • i > 0 and j > k

  • i < 0 and j < k

Tips

  • The for referencepage has a description of how to use : in the contextof loop statements.

  • linspace issimilar to the colon operator :, but it gives directcontrol over the number of points and always includes the endpoints.The sibling function logspace generateslogarithmically spaced values.

  • When you create a vector to index into a cell arrayor structure array (such as cellName{:} or structName(:).fieldName), MATLAB returnsmultiple outputs in a comma-separated list. For more information,see How to Use Comma-Separated Lists.

Extended Capabilities

Version History

Introduced before R2006a

expand all

colon now issues a warning when creating vectors if one or more operands are not scalar. For example, expressions like [1 2 3]:2:10 now warn. This warning will become an error in a future release, removing support for nonscalar operands. Previously, colon used the first element of any nonscalar operands to evaluate the expression.

See Also

for | linspace | logspace | reshape | varargin

Topics

  • Generate Sequence of Dates and Time
  • MATLAB Operators and Special Characters
  • Array Indexing

MATLAB Command

You clicked a link that corresponds to this MATLAB command:

 

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Vector creation, array subscripting, and for-loopiteration (1)

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

Americas

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europe

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom (English)

Asia Pacific

  • Australia (English)
  • India (English)
  • New Zealand (English)
  • 中国
  • 日本 (日本語)
  • 한국 (한국어)

Contact your local office

Vector creation, array subscripting, and for-loop
iteration (2024)
Top Articles
Latest Posts
Article information

Author: Dean Jakubowski Ret

Last Updated:

Views: 5405

Rating: 5 / 5 (50 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Dean Jakubowski Ret

Birthday: 1996-05-10

Address: Apt. 425 4346 Santiago Islands, Shariside, AK 38830-1874

Phone: +96313309894162

Job: Legacy Sales Designer

Hobby: Baseball, Wood carving, Candle making, Jigsaw puzzles, Lacemaking, Parkour, Drawing

Introduction: My name is Dean Jakubowski Ret, I am a enthusiastic, friendly, homely, handsome, zealous, brainy, elegant person who loves writing and wants to share my knowledge and understanding with you.