Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

What does the colon operator (:) in MATLAB do?

Asked by Andrew

Andrew (view profile)

on 21 Mar 2011

The code below is used to draw a simple octagon on the screen with the word stop in the middle.

My question is, can anyone explain what is happening in the top statement. (variable t). What does the (1:2:15)' do?

Also, for example, if I wanted to draw a circle on the screen, how would I modify this code to do so.

t = (1:2:15)'*pi/8;
  x = sin(t);
y = cos(t);
fill(x,y,'r')
axis square off
text(0,0,'STOP','Color',[0 0 0],'FontSize',80,'FontWeight','bold','HorizontalAlignment','center')
title('Figure STOP')

0 Comments

Andrew

Andrew (view profile)

Tags

Products

3 Answers

Answer by Paulo Silva

Paulo Silva (view profile)

on 21 Mar 2011
Accepted answer

1:2:15 creates a vector like this:

[1,3,5,7,9,11,13,15]

doc colon

The ' puts the values in lines (rows) instead of columns.

[1;3;5;7;9;11;13;15]

doc transpose

first vale is 1, step is 2 and last value is 15

If you want to create the circle you can do this

t=0:0.1:2*pi;

and keep the rest of the code without any changes

0 Comments

Paulo Silva

Paulo Silva (view profile)

Answer by the cyclist

the cyclist (view profile)

on 21 Mar 2011

x and y are being created via a "parameterization" through t. The variable t is running from 0 to 2pi (i.e. around the circumference of the circle), but it does so in eight discrete intervals. (That's why you get eight sides.)

If you breakpoint your code after the first line, you will see that t takes equally spaced values around the circle. (The "linspace" command would have been another way to do this.) The part "1:2:15" is the vector [1 3 5 7 9 11 13 15].

0 Comments

the cyclist

the cyclist (view profile)

Answer by Alexander

Alexander (view profile)

on 14 Aug 2013

Yes but it's been seen as := as well, what does that do?

2 Comments

Jan Simon

Jan Simon (view profile)

on 15 Aug 2013

At 1st this is a new question and not an answer of the original question. At 2nd ":=" might be seen anywhere, but not in valid Matlab code. In a mathematical context a ":=" means, that the left side is defined as the right side.

Image Analyst

Image Analyst (view profile)

on 15 Aug 2013

I'm not even sure that Alexander "Answered" the question he thought he was. His response is a total non sequiter.

Alexander

Alexander (view profile)

Contact us