MATLAB Programming/Arrays/Basic vector operations - Wikibooks, open books for an open world (2024)

[MATLAB Programming\|/MATLAB Programming]m]

Chapter 1: MATLAB ._.

 Introductions .
Fundamentals of MATLAB
MATLAB Workspace
MATLAB Variables
*.mat files

Chapter 2: MATLAB Concepts

MATLAB operator
Data File I/O

Chapter 3: Variable Manipulation

Numbers and Booleans
Strings
Portable Functions
Complex Numbers

Chapter 4: Vector and matrices

Vector and Matrices
Special Matrices
Operation on Vectors
Operation on Matrices
Sparse Matrices

Chapter 5: Array

Arrays
Introduction to array operations
Vectors and Basic Vector Operations
Mathematics with Vectors and Matrices
Struct Arrays
Cell Arrays

Chapter 6: Graphical Plotting

Basic Graphics Commands
Plot
Polar Plot
Semilogx or Semilogy
Loglog
Bode Plot
Nichols Plot
Nyquist Plot

Chapter 7: M File Programming

Scripts
Comments
The Input Function
Control Flow
Loops and Branches
Error Messages
Debugging M Files

Chapter 8: Advanced Topics

Numerical Manipulation
Advanced File I/O
Object Oriented Programming
Applications and Examples
Toolboxes and Extensions

Chapter 9: Bonus chapters

MATLAB Benefits and Caveats
Alternatives to MATLAB
[MATLAB_Programming/GNU_Octave|What is Octave= (8) hsrmonic functions]
Octave/MATLAB differences

edit this box

A vector in MATLAB is defined as an array which has only one dimension with a size greater than one. For example, the array [1,2,3] counts as a vector. There are several operations you can perform with vectors which don't make a lot of sense with other arrays such as matrices. However, since a vector is a special case of a matrix, any matrix functions can also be performed on vectors as well provided that the operation makes sense mathematically (for instance, you can matrix-multiply a vertical and a horizontal vector). This section focuses on the operations that can only be performed with vectors.

Contents

  • 1 Declaring a vector
    • 1.1 Declaring a vector with linear or logarithmic spacing
  • 2 Vector Magnitude
  • 3 Dot product
  • 4 Cross Product

Declaring a vector

[edit | edit source]

Declare vectors as if they were normal arrays, all dimensions except for one must have length 1. It does not matter if the array is vertical or horizontal. For instance, both of the following are vectors:

>> Horiz = [1,2,3];>> Vert = [4;5;6];

You can use the isvector function to determine in the midst of a program if a variable is a vector or not before attempting to use it for a vector operation. This is useful for error checking.

>> isvector(Horiz)ans = 1>> isvector(Vert)ans = 1

Another way to create a vector is to assign a single row or column of a matrix to another variable:

>> A = [1,2,3;4,5,6];>> Vec = A(1,:)Vec = 1 2 3

This is a useful way to store multiple vectors and then extract them when you need to use them. For example, gradients can be stored in the form of the Jacobian (which is how the symbolic math toolbox will return the derivative of a multiple variable function) and extracted as needed to find the magnitude of the derivative of a specific function in a system.

Declaring a vector with linear or logarithmic spacing

[edit | edit source]

Suppose you wish to declare a vector which varies linearly between two endpoints. For example, the vector [1,2,3] varies linearly between 1 and 3, and the vector [1,1.1,1.2,1.3,...,2.9,3] also varies linearly between 1 and 3. To avoid having to type out all those terms, MATLAB comes with a convenient function called linspace to declare such vectors automatically:

>> LinVector = linspace(1,3,21) LinVector = Columns 1 through 9 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 Columns 10 through 18 1.9000 2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 Columns 19 through 21 2.8000 2.9000 3.0000

Note that linspace produces a row vector, not a column vector. To get a column vector use the transpose operator (') on LinVector.

The third argument to the function is the total size of the vector you want, which will include the first two arguments as endpoints and n - 2 other points in between. If you omit the third argument, MATLAB assumes you want the array to have 100 elements.

If, instead, you want the spacing to be logarithmic, use the logspace function. This function, unlike the linspace function, does not find n - 2 points between the first two arguments a and b. Instead it finds n-2 points between 10^a and 10^b as follows:

>> LogVector = logspace(1,3,21) LogVector = 1.0e+003 * Columns 1 through 9 0.0100 0.0126 0.0158 0.0200 0.0251 0.0316 0.0398 0.0501 0.0631 Columns 10 through 18 0.0794 0.1000 0.1259 0.1585 0.1995 0.2512 0.3162 0.3981 0.5012 Columns 19 through 21 0.6310 0.7943 1.0000

Both of these functions are useful for generating points that you wish to evaluate another function at, for plotting purposes on rectangular and logarithmic axes respectively.

Vector Magnitude

[edit | edit source]

The magnitude of a vector can be found using the norm function:

>> Magnitude = norm(inputvector,2);

For example:

>> magHoriz = norm(Horiz) magHoriz = 3.7417>> magVert = norm(Vert)magVert = 8.7750

The input vector can be either horizontal or vertical.

Dot product

[edit | edit source]

The dot product of two vectors of the same size (vertical or horizontal, it doesn't matter as long as the long axis is the same length) is found using the dot function as follows:

>> DP = dot(Horiz, Vert)DP = 32

The dot product produces a scalar value, which can be used to find the angle if used in combination with the magnitudes of the two vectors as follows:

>> theta = acos(DP/(magHoriz*magVert));>> theta = 0.2257

Note that this angle is in radians, not degrees.

Cross Product

[edit | edit source]

The cross product of two vectors of size 3 is computed using the 'cross' function:

>> CP = cross(Horiz, Vert)CP = -3 6 -3

Note that the cross product is a vector. Analogous to the dot product, the angle between two vectors can also be found using the cross product's magnitude:

>> CPMag = norm(CP);>> theta = asin(CPMag/(magHoriz*magVert))theta = 0.2257

The cross product itself is always perpendicular to both of the two initial vectors. If the cross product is zero then the two original vectors were parallel to each other.

MATLAB Programming/Arrays/Basic vector operations - Wikibooks, open books for an open world (2024)

FAQs

What are the basic vector operations in MATLAB? ›

Vector operations in Matlab allow you to apply a "single" command to an entire array. In fact what is happening is that "single" command is applied over and over again to every element of the array. Vectorized operations are equivalent to for loops and all vectorized operations can be replaced with for loops.

How do you create an open vector in MATLAB? ›

You can create a vector both by enclosing the elements in square brackets like v=[1 2 3 4 5] or using commas, like v=[1,2,3,4,5].

What is a vector array in MATLAB? ›

A vector is a one-dimensional array of numbers. MATLAB allows creating two types of vectors − Row vectors. Column vectors.

What is the difference between a matrix and a vector in MATLAB? ›

The size of a matrix is the pair of numbers that indicate how many rows and columns the matrix has. The orientation of a two-dimensional vector is its status as either a row vector or column vector. A one-dimensional array has no orientation – this is sometimes called an unoriented vector.

What is an example of a vector in MATLAB? ›

As mentioned earlier in the section of inputting vectors and matrices, MATLAB uses square brackets, [ ] to create a vector. For example, to create the vectors A = -2i + 6j, B = 6i + 3j, C = 4i – 3j, and D = -2i – 4j shown in Figure 10, type in the MATLAB command window.

What are the two basic vector operations? ›

Answer and Explanation: The two basic vector operations are scalar product and vector product. These products have two drastically different results as their names indicate.

Can you plot a vector in MATLAB? ›

Note that if you are working in 3D, you need to include the z components of the vectors and the starting points in the quiver function as well. These basic steps are to plot vectors in MATLAB using the quiver function. You can also use other functions, such as an arrow and compass, depending on your needs.

How to create an array in MATLAB? ›

To create an array with multiple elements in a single row, separate the elements with either a comma ',' or a space. This type of array is called a row vector. To create an array with multiple elements in a single column, separate the elements with semicolons ';'. This type of array is called a column vector.

What is vectorize in MATLAB? ›

Vectorization is one of the core concepts of MATLAB. With one command it lets you process all elements of an array, avoiding loops and making your code more readable and efficient. For data stored in numerical arrays, most MATLAB functions are inherently vectorized.

Why use vector instead of array? ›

In conclusion, while arrays are a fundamental part of C++, vectors provide a more flexible and convenient way to handle collections, especially when the size is not known in advance, or when elements need to be inserted or deleted. Vectors also offer better compatibility with the STL and are safer to use than arrays.

What is the basic difference between vector and array? ›

Vector is a sequential container to store elements and not index based. Array stores a fixed-size sequential collection of elements of the same type and it is index based. Vector is dynamic in nature so, size increases with insertion of elements. As array is fixed size, once initialized can't be resized.

How do you check if an array is a vector MATLAB? ›

TF = isvector( A ) returns logical 1 ( true ) if A is a vector. Otherwise, it returns logical 0 ( false ). A vector is a two-dimensional array that has a size of 1-by-N or N-by-1, where N is a nonnegative integer.

Is a vector just a matrix? ›

Note that a vector is the special case of a matrix, where there is only one row or column - In this case, the second subscript is dropped.

How to create a vector in MATLAB? ›

The colon is one of the most useful operators in MATLAB®. It can create vectors, subscript arrays, and specify for iterations. x = j : k creates a unit-spaced vector x with elements [j,j+1,j+2,...,j+m] where m = fix(k-j) . If j and k are both integers, then this is simply [j,j+1,...,k] .

Can MATLAB do matrix multiplication? ›

MATLAB® has two different types of arithmetic operations: array operations and matrix operations. You can use these arithmetic operations to perform numeric computations, for example, adding two numbers, raising the elements of an array to a given power, or multiplying two matrices.

What are vectorized operations in MATLAB? ›

Vectorization is one of the core concepts of MATLAB. With one command it lets you process all elements of an array, avoiding loops and making your code more readable and efficient. For data stored in numerical arrays, most MATLAB functions are inherently vectorized.

What are the basic operations of MATLAB? ›

Basic Arithmetic
  • Addition. + Add numbers, append strings. sum. Sum of array elements. ...
  • Subtraction. - Subtraction. diff. ...
  • Multiplication. .* Multiplication. * ...
  • Division. ./ Right array division. .\ ...
  • Powers. .^ Element-wise power. ^ ...
  • Transpose. .' Transpose vector or matrix. ' ...
  • Array Sign. uminus. Unary minus. uplus.

What are different operations on vector? ›

vector operations, Extension of the laws of elementary algebra to vectors. They include addition, subtraction, and three types of multiplication. The sum of two vectors is a third vector, represented as the diagonal of the parallelogram constructed with the two original vectors as sides.

What are the logical operations on a vector in MATLAB? ›

Functions
&Find logical AND
~Find logical NOT
|Find logical OR
Short-Circuit ||Logical OR with short-circuiting
xorFind logical exclusive-OR
8 more rows

References

Top Articles
Latest Posts
Article information

Author: Arline Emard IV

Last Updated:

Views: 5569

Rating: 4.1 / 5 (52 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Arline Emard IV

Birthday: 1996-07-10

Address: 8912 Hintz Shore, West Louie, AZ 69363-0747

Phone: +13454700762376

Job: Administration Technician

Hobby: Paintball, Horseback riding, Cycling, Running, Macrame, Playing musical instruments, Soapmaking

Introduction: My name is Arline Emard IV, I am a cheerful, gorgeous, colorful, joyous, excited, super, inquisitive person who loves writing and wants to share my knowledge and understanding with you.