# Some Useful MATLAB Commands

MATLAB is a powerful tool which enables us to perform computationally intensive tasks. In order to use this wonderful tool efficiently and to enable yourself to harness its powers to maximum, you must know more than a newbie programmer of MATLAB knows. Most of the times, there are some commands which are overlooked or are not known at all, mainly because they appear to perform such simple tasks that could be performed by writing alternate code.

Right. These commands can be replaced by alternate code but not that easily all the time. Sometimes its really irritating to do these jobs. Using these MATLAB command greatly save our time and makes our programming simpler.

Let us get into it right away. Here is a brief description of some MATLAB commands and a few usage examples along with results. The order in which these commands appear is not significant.

### fix

Usage: fix(VAR)
This command rounds the value of VAR to the nearest integer towards zero. Note the difference between this command and the simple operation of rounding numbers. Fix rounds to the nearest integer towards zero.
Example: fix(2.89) will return 2, while fix(-2.89) will return 2.
Note: The result will always be integer. If VAR is a vector or matrix the individual elements of the VAR will be changed to integers as described above.

### rem

Usage: rem(X, Y)
This command returns the remainder when X is divided by Y.
Example: rem(4,3) will return 1, while rem(4,5) will return 4.

### bi2de

Usage: bi2de(VAR)
This command is used to convert binary data present in VAR to its decimal equivalent. For example if VAR = [1 1;
0 1;
1 0]
bi2de(VAR) will return [ 3
2
1 ]. Note that when used this way the bi2de commands considers the right-most bit to be the most-significant bit. You can change this property by adding a second argument to the command as follows:
bi2de(VAR, ‘left-msb’). Most of the time MATLAB’s ‘reshape’ command is also used in conjunction with the bi2de command. For example if you have a vector of binary data that should be rearranged before converting it to decimal, you will use the reshape command. See reshape command here for more details.

### reshape

Usage: reshape(VAR, m, n)
This command changes the size of VAR. reshape(VAR, m, n) returns the m-by-n matrix whose elements are taken column-wise from VAR. An error results if VAR does not have m*n elements.
Example: If VAR=[1 2 3 4 5 6 7 8]; reshape(VAR, 2,4) will result in
[ 1 3 5 7;
2 4 6 8]
and reshape(VAR, 4, 2) will return
[ 1 5;
2 6;
3 7;
4 8]

### polyfit

Usage: polyfit(x, y, n)
Very often we are faced with the problem of mapping some data to some other numbers. Or in other words we would like to determine any relationship between these sets of data. Such problems are mostly expressed in a tabular form. For example we have the following table giving the temperature after every hour of an object used in an experiment.
Time elapsed (hours) Temperature (C)
1 80
2 130
3 138
4 140
5 150

Let us define two vectors time and temperature as follows:
time = [1 2 3 4 5]
temperature = [80 130 138 140 150]
in order to determine the relationship between time and temperature we can use the polyfit command, which by name means fitting a polynomial according to the given data. The command will be used as follows:
P = polyfit(time, temperature, 4) where 4 refers to the degree of polynomial we desire. The result will be a vector consisting of the coefficients of a polynomial P(time) i.e. you can just put the value of time in this polynomial and get the approximate temperature of the experiment at that time instant. The result in this case will be the following vector:
P = [-0.9167 15.1667 -89.0833 224.8333 -70.0000] which mathematically means P(t)= p(1)*t^4 + p(2)*t^3 + p(3)*t^2 + p(4)*t^1 + p(5)*t^0. Now just put in the value of time and you will get the temperature at that time instant. Therefore, it is evident that this command can be used to interpolation as well. i.e. you can use it to find the approximate value of temperature at those times (between 1 and 5) which are not present in the given table. An example code for this purpose is given as follows:

time=[1 2 3 4 5];
temperature=[80 130 138 140 150];
p=polyfit(time, temperature, 4);

j=1;
t=1:0.1:5;
P=p(1)*t.^4+p(2)*t.^3+p(3)*t.^2+p(4)*t.^1+p(5)*t.^0;

plot(t, P)

Well you don’t have to write that complex polynomial equation in MATLAB to evaluate a polynomial. What you need is another useful command named ‘polyval’. The above code will now be written as follows:

close all
clear all
clc

time=[1 2 3 4 5];
temperature=[80 130 138 140 150];
p=polyfit(time, temperature, 4);

j=1;
t=1:0.1:5;
P=polyval(p,t);

plot(t, P)

The results are shown below in graphical format.

MATLAB graph showing the variation in temperature with respect to time.

### polyval

Usage: polyval(p, x)
Where p is the polynomial coefficient vector and x is the value at which we want to evaluate this polynomial. For more details please see the description of polyfit command.

### floor

Usage: floor(VAR)
This command rounds the value of VAR to the nearest integer towards minus infinity. Note the difference between this command and the fix command discussed above.

### abs

Usage: abs(VAR)
Abs(VAR) is the absolute value of the elements of VAR. When VAR is complex, abs(VAR) is the complex modulus (magnitude) of the elements of VAR.
Examples: abs(2.1) will return 2.1, and abs(-4.6) will return 4.6 while abs(3 + j4) will return 5.

### de2bi

Usage: de2bi(VAR)
This command converts the content of VAR to their binary equivalent. The command returns a binary matrix with numbers arranged row-wise. The left most bit is the least significant bit.
Example: If VAR=[1 6 2], de2bi(VAR) will return
1     0     0
0     1     1
0     1     0

### sum

Usage: sum(VAR)
S=sum(VAR) is the sum of the elements of the vector VAR. If VAR is a matrix, S is a row vector with the sum over each column. If you would like to sum along rows, use sum(VAR, 2).

Some other commands that should be reviewed:
min, max, norm, ceil.

## More by this Author

RNMSN 7 years ago from Tucson, Az

oh my goodness!! this was so over my head but I am so impressed!! great article!

PAK 6 years ago

save my system 6 years ago from United Kingdom - London

Matlab is very effective tool. I need Matlab commands for Digital image processing tasks and signal processing works. Thought this commands are little bit complicated, but they surely reduce my program length and complexity. Thanks for sharing this commands. Really nice article

Fahad Aziz 5 years ago

THESE ARE THE GOOD EXAMPLES BUT THESE DOES NOT SHOWS THE

IMAGE WITH EXAMPLES.

THANKS

lalii 5 years ago

lay bhari.......................

vijay 4 years ago

mex.h

int main()

{

int w,Ri,Ro,H,B;

float A,Lg,Rn,R,E,X,M,Bm,Yo,Yi,Yi,Bsi,Bso,Rsi,Rso;

fprint('CRANE HOOK DESIGN MEASUREMENTS\n');

fprint('enter weight W value in N\n')

fscanf(W);

fprintf('enter inner radius value Ri in mm\n');

fscanf(Ri);

fprintf('enter inner radius value Ro in mm\n');

fscanf(Ro);

fprintf('enter height value H in mm\n');

fscanf(H);

fprintf('enter weight value B in mm\n');

fscanf(B);

%A=(B*H);

%Lg=log(Ro/Ri);

%Rn=(H/Lg);

%R=(ri+(H/2));

%E=(R-Rn);

%X=R;

%M=(W*X);

%Bm=(W/A);

%Yi=(Rn-Ri);

%Yo=(Ro-Rn);

%Bsi=((M*Yi)/(A*E*Ri));

%Bso=((M*Yi)/(A*E*Ro));

%Rsi=(Bm+Bsi);

%Rso=(Bso-Bm);

fprintf('area of the section:'%A'mm2\n');

fprintf('radius of curvature of the neutral axis:'%Rn'mm\n');

fprintf('radius of curvature of the centriodal axis:'%R'mm\n');

fprintf('Distance between the load and the centriodal axis and neutral axis:'%E'mm\n');

fprintf('Distance between the load and the centroidal asis:'%X' mm\n');

fprintf('Bending moment about the centroidal axis:'%M'N-mm\n');

fprintf('direct tensile stress:'%Bm'mm\n');

fprintf('the dstance from the neutral axis to the inside fibre:'%Yi'mm\n');

fprintf('distance from the neutral axis to outside fibre:'%Yo' mm\n');

fprintf('Maximum bending stress at inside fibre:'%Bsi'mm\n');

fprintf('Maximum bending stress at the outside fibre:'%Bso'mm\n');

fprintf('Resultant stress at the inside fibre:'%Rsi'mm\n');

fprintf('Resultant stress at the outside fibre:'%Rso'mm\n');

return_0;

}

can any one find the errors in this command?

i am not getting the output............