The gradient is defined as the slope of any feature in general terms. In mathematics, it is defined as the partial derivative of any function. It is the collection of all the partial derivatives that are defined as part of the function into a vector. The field generated by it is known as gradient field and it can be in two dimensions or three-dimension. The resultant gradient in terms of x, y and z give the rate of change in x, y and z directions respectively. iN this topic, we are going to learn about Matlab Gradient.
Working of Gradient in Matlab with Syntax
In Matlab, we use the numerical gradient to represent the derivatives of the function. The function used while working with gradient is denoted by “gradient”. We can perform several operations using gradient function in Matlab. Please find the below syntaxes which can be used to perform various operations:
- X= gradient[a]: This function returns a one-dimensional gradient which is numerical in nature with respect to vector ‘a’ as the input. Here X is the output which is in the form of first derivative da/dx where the difference lies in the x-direction.
- [X, Y] = gradient[a]: This function returns two-dimensional gradients which are numerical in nature with respect to vector ‘a’ as the input. Here X and Y are the outputs that are in the form of first derivatives da/dx and da/dy where the difference lies in the x and y direction respectively.
- [X, Y, Z…. N] =gradient(a): This syntax returns the numerical gradient of the number of components present in the input array.
- [___] = gradient (a, h): This syntax returns the gradient with the number of spacing points mentioned in the input argument ‘h’ which can be used in any direction.
- [__] = gradient (a, hb, hc, hd, he….hn): This syntax returns n number of spacing points in every dimension as given in a.
Examples of Matlab Gradient
Below are the examples for Matlab Gradient
To calculate the gradient of a vector.
A = 11:15
11 12 13 14 15
x = gradient(a)
- In the above example, the function calculates the gradient of the given numbers. The input arguments used in the function can be vector, matrix or a multidimensional array and the data types that can be handled by the function are single, double. It also supports the use of complex numbers in Matlab. “h” in the syntax is used to define the spacing between the points in the respective directions which is uniform in nature and it is denoted as a scalar quantity.
- The data types that can be handled by the function are single, double. It also supports the use of complex numbers in Matlab. “hb,” hc”,” hd” denote the unique spacing between the points in each direction and they can be scalar or vector in nature. The number of input arguments that we specify while declaring the function, it should always match the dimension of the array used.
- If the input is scalar in nature, then it means the spacing used between the points is constant in the respective dimension. If the input is the vector in nature, then it represents the coordinates with the respective dimension and vector’s length should always match the dimension size which is used. The data types that are accepted are single and double in nature. It also supports the use of complex numbers.
- The output arguments which are returned by the gradient function have the same nature as that of input arguments used and are known as Numerical Gradients. X represents gradient in the second dimension which is columns, Y represents the gradient in the first dimension which is the rows and the rest of the outputs follow in the same directions. If we want to use gradient function multiple times then instead of calling it many times, we can use “diff” function.
To calculate the gradient of the function ae^a2−b2 and plot the contour lines
a = -1:0.3:1;
b = a’;
c = a.* exp (-a.^2 – b.^2);
[pa, pb] = gradient(c)
We can also use the gradient function if the input argument is a function. It is given by the below syntax:
gradient (a, y): It gives the gradient vector of the function defined in the input argument with respect to the vector mentioned in y. If vector ‘y’ is not mentioned in the input, then it finds the scalar gradient function according to the variables mentioned in the function. Variables used in the vector have an order and it is specified by symvar.
The input arguments can be an expression or a function which can be scalar in nature. y is the vector with respect to which we can find the gradient vector. If y is empty, then it returns an empty gradient object. The gradient vector of function is the collection of all the first partial derivatives with respect to function defined.
To calculate the gradient of the function as given:
syms a b c
f = 2*b*c*sin(a) + 3*a*sin(c)*cos(b);
gradient (f, [a, b, c])
3*cos(b)*sin(c) + 2*b*c*cos(a)
2*c*sin(a) – 3*a*sin(b)*sin(c)
2*b*sin(a) + 3*a*cos(b)*cos(c)
There are various properties that are associated with the gradient in Matlab, like its color and transparency level can be adjusted by providing the parameters to the input argument with the required values. Numerical gradients can be calculated for any number of variables since there is no specific limit to it. It can be calculated for every direction by determining the partial derivatives of different values used in the function. If we give spacing between the points, then the gradient approximates the difference accordingly.