In a previous MATLAB tutorial post, we saw how to assign a variable name to a value. In this post, we revisit variables momentarily to identify the difference between scalar variables and MATLAB vectors. In fact, a MATLAB vector (and its big brother - the matrix) is a key part of the MATLAB architecture. MATLAB treats vectors a bit differently compared to other programming languages with what is known as element-by-element math, which we will discuss in the next tutorial post: Element-by-element Operations.
MATLAB Scalar Variables
A MATLAB scalar variable is simply a numerical value or the result of a computational expression. They are quite useful for a number of reasons:
- simplifying complex expressions
- allowing for generic code
- assigning meaning to a complex expression (built-in comments)
A scalar variable is assigned with simple syntax (in either the command window or a script file) to either a numerical value or the result of an expression. For example:
% variable name = a numerical value
x = 2;
% variable name = a computable expression
abc = 5*2+x/sqrt(3);
w = 2*pi;
z = exp(w)*75;
Recall that MATLAB variable names must begin with a letter and can contain only upper/lower case letters, numbers, and underscores (_).
A vector in MATLAB is a list of scalar values. We refer to the different values in a vector as elements. In MATLAB, there are two types of vectors: row and column vectors. Both of these are enclosed in square brackets [ ] when we enter them in MATLAB (either at the command prompt or in a script file).
Row Vector - elements separated by spaces or commas (,)
>> year = [1984 1985 1986 1987 1988]
1984 1985 1986 1987 1988
Column Vector - elements separated by semicolons (;)
>> population = [126; 127; 130; 145]
Notice that when entered, the different types of vectors are output (and also stored) in a different orientation. This observation will become more important in later discussion of matrices.
When working with vectors you can pick out specific elements in a vector by specifying their indices, or locations in the vector. For example I can pick out the 2nd element of population:
>> a = population(2)
I can also pick out the 3rd and 5th elements of year by specifying their indices as a vector!
>> b = year([3 5])
Indices can also be used to assign values to certain locations in a matrix. For example, assume that I have already created the year vector and now wish to change the 3rd element to 2014.
year(3) = 2014
1984 1985 2014 1987 1988
Automatically Generating Vectors
A useful feature in MATLAB is the ability to generate vectors using a short-hand syntax with a colon (:). I like to think of this syntax as a "fill in all between" operation.
A colon between two integers means to fill in all the integers in between the two values:
>> myData = [1:10]
1 2 3 4 5 6 7 8 9 10
By enclosing a different value (integer or decimal) between two colons we can specify an increment other than 1. Note that this increment can also be negative to count downward:
>> myData1 = [1:2:10]
1 3 5 7 9
>> myData2 = [5:-0.5:0]
5.0 4.5 4.0 3.5 3.0 2.5 2.0 1.5 1.0 0.5 0.0
We note that the result of these operations are only row vectors. If we require a column vector, we need to transpose the vector as shown below:
>> myData = transpose([1:2:10])
Finally, MATLAB also allows us to specify values to an entire range of data using indices and the colon operator:
>> assignedValues(1:10) = 4
4 4 4 4 4 4 4 4 4 4
>> assignedValues([2:5,8]) = 9
4 9 9 9 9 9 4 9 4 4
With an basic understanding of how we can create and modify vectors, next let us discuss how we can use them efficiently in MATLAB by performing Element by Element Operations.
icon-long-arrow-left Last icon-cog Next icon-long-arrow-right