# Basic Operations in Octave

GNU Octave is a high-level programming language, primarily intended for numerical computations. It can also be used to implement various machine learning algorithms with ease. Octave is open-source i.e. it is free to use, whereas MATLAB is not thus MATLAB requires a licence to operate.

Below are the various basic functionalities of Octave :

1. Arithmetic Operations : Octave can be used to perform basic mathematical operations like addition, subtraction, multiplication, power operation etc.

 `     `  `% addition operation ` `23 + 65 + 8 ` ` `  `% subtraction operation ` `32 - 74 ` ` `  `% power operation ` `6 ^ 2 ` ` `  `% multiplication operation ` `45 * 7 ` ` `  `% division operation ` `5 / 6 `

Output :

```ans = 96
ans = -42
ans = 36
ans = 315
ans = 0.83333
```

2. Logical Operations : Octave can be used to perform logical operations like AND, OR, NOT etc.

 `  `  `% logical AND      ` `1 && 0 ` ` `  `% logical OR ` `1 || 0 ` ` `  `% logical NOT ` `~1 `

Output :

```ans = 0
ans = 1
ans = 0
```

3. Relational Operations : Octave can be used to perform relational operations like greater than, less than etc.

 `  `  `% equal to ` `1 == 1 ` ` `  `% not equal to ` `0 ~= 0 ` ` `  `% greater than     ` `1 > 0 ` ` `  `% less than ` `1 < 0 ` ` `  `% greater than equal to   ` `1 >= 2 ` ` `  `% less than equal to ` `0 <= 0 `

Output :

```ans = 1
ans = 0
ans = 1
ans = 0
ans = 0
ans = 1
```

4. Changing the default Octave prompt symbol : The default Octave prompt symbol is “>>”. We can change the default Octave prompt symbol using the below commands :

 `    `  `PS1(``'<< '``); ` `PS1(``'@ '``); ` `PS1(``'# '``); `

Output : 5. Variables : Like other programming languages, Octave also has variables to temporarily store data.

 `     `  `% variable declaration and initialization ` `var = 2 ` ` `  `% if we want to create the variable and don't want to print it ` `% then put a semicolon at the end of that command ` `var = 3; ``% this time the variable will not be printed ` ` `  `% variable of datatype char  ` `ch = ``'c'` ` `  `% storing the result of an operation in a variable ` `res = (1 != 1) ` ` `  `% storing the value of pi in a varible ` `var = pi ` ` `  `% printing a variable with disp() function ` `disp(var); ` ` `  `% using sprintf() function to print a string ` `disp(sprintf(``'3 decimal values : %0.3f'``, var)) ` ` `  `% using format long to resize ` `format long ` `var ` ` `  `% using format short to resize ` `format short ` `var `

Output :

```var =  2
ch = c
res = 0
var =  3.1416
3.1416
3 decimal values : 3.142
var =  3.141592653589793
var =  3.1416
```

6. Matrices and Vectors : Now let’s learn how to deal with matrices and vectors in Octave. We can create matrix as shown below.

 `   `  `% creating matrix in row major  ` `matrix = [1 2 3; 4 5 6; 7 8 9] `

Output :

```matrix =

1   2   3
4   5   6
7   8   9
```

We can also make a vector, a vector is a matrix with n rows and 1 column(column vector) or 1 rows with n columns(row vector). here in example 2 and 3 the middle value 5 and 0.5 shows that we want to make a vector matrix from range 1 to 20 with the jump of 5 and from range 0 to 5 with a jump of 0.5 respectively.

 `    `  `% creating row vector ` `r_v = [1, 2, 3] ` ` `  `% creating column vector ` `c_v = [1; 2; 3] `

Output :

```r_v =

1   2   3

c_v =

1
2
3
```

Here are some utility shortcuts to create matrices and vectors :

 `% creating vector using ":" ` `% the extreme end values denote the range ` `% and the middle value denotes the step ` `v1 = 1 : 5 : 20 ` `v2 = 1 : 0.5 : 5 ` ` `  `% without the step parameter ` `v3 = 1 : 10 ` ` `  `% generate matrix of size 4x4 with all element as 1 ` `ones_matrix = ones(4, 4) ` ` `  `% generate matrix of size 4x4 with all element as 10 ` `M = 10 * ones(4, 4) ` ` `  `% generate row vector of size 5 with all elements 0 ` `zeroes_vector = zeros(1, 5) ` ` `  `% generate row vector of some random numbers between 0 and 1 ` `random_vector = rand(1, 5) ` ` `  `% generate matrix of some random numbers between 0 and 1 ` `random_matrix = rand(3, 4) ` ` `  `% generate matrix with Gaussian distribution ` `% where mean = 0 and variance and standard deviation = 1 ` `gauss_matrix = randn(5, 5) ` ` `  `% generate identity matrix with size 5x5 ` `identity_matrix = eye(5) `

Output :

```v1 =

1    6   11   16

v2 =

1.0000    1.5000    2.0000    2.5000    3.0000    3.5000    4.0000    4.5000    5.0000

v3 =

1    2    3    4    5    6    7    8    9   10

ones_matrix =

1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1

M =

10   10   10   10
10   10   10   10
10   10   10   10
10   10   10   10

zeroes_vector =

0   0   0   0   0

random_vector =

0.79085   0.35395   0.92267   0.60234   0.75549

random_matrix =

0.64434   0.67677   0.54105   0.83149
0.70150   0.16149   0.38742   0.90442
0.60075   0.82273   0.37113   0.91496

gauss_matrix =

0.705921   1.336101  -0.097530   0.498245   1.125928
-0.550047  -1.868716  -0.977788   0.319715  -0.603599
-0.018352  -2.133200   0.462272   0.169707   1.733255
0.623343   0.338734   0.618943   1.110172   1.731495
-1.741052  -0.463446   0.556348   1.633956  -1.424136

identity_matrix =

Diagonal Matrix

1   0   0   0   0
0   1   0   0   0
0   0   1   0   0
0   0   0   1   0
0   0   0   0   1
```

7. Histograms : We can draw the histograms `hist()` function. We can also change the bucket size or bins of the histogram.

 `  `  `% generate a vector with 1000 elements ` `elements_1000 = 1 + sqrt(25)*(randn(1, 1000)); ` ` `  `hist(elements_1000 ) `

Output : `  `  `% generate a vector with 1000 elements ` `elements_1000 = 1 + sqrt(25)*(randn(1, 1000)); ` ` `  `% histogram with 30 bins ` `hist(elements_1000, 30) `

Output : 8. Help : We can use the `help` command to see the documentation for any function.

 `  `  `help eye ` `help sqrt ` `help hist `

Output :   My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.