Operaciones básicas en octava

GNU Octave es un lenguaje de programación de alto nivel, destinado principalmente a cálculos numéricos. También se puede utilizar para implementar varios algoritmos de aprendizaje automático con facilidad. Octave es de código abierto, es decir, es de uso gratuito, mientras que MATLAB no lo es, por lo que MATLAB requiere una licencia para operar.

A continuación se muestran las diversas funcionalidades básicas de Octave:

1. Operaciones aritméticas: Octave se puede utilizar para realizar operaciones matemáticas básicas como sumas, restas, multiplicaciones, operaciones de potencia, etc. 

MATLAB

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

Producción : 

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

2. Operaciones lógicas: Octave se puede usar para realizar operaciones lógicas como AND, OR, NOT, etc. 

MATLAB

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

Producción : 

ans = 0
ans = 1
ans = 0

3. Operaciones relacionales: Octave se puede utilizar para realizar operaciones relacionales como mayor que, menor que, etc.

MATLAB

% 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

Producción : 

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

4. Cambio del símbolo de indicador de octava predeterminado: El símbolo de indicador de octava predeterminado es «>>». Podemos cambiar el símbolo de indicador de octava predeterminado usando los siguientes comandos:

MATLAB

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

Producción : 

5. Variables: al igual que otros lenguajes de programación, Octave también tiene variables para almacenar datos temporalmente.

MATLAB

% 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 variable
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

Producción : 

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

6. Arrays y Vectores: Ahora aprendamos cómo manejar arrays y vectores en Octave. Podemos crear una array como se muestra a continuación.

MATLAB

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

Producción : 

matrix =

   1   2   3
   4   5   6
   7   8   9

También podemos hacer un vector, un vector es una array con n filas y 1 columna (vector de columna) o 1 fila con n columnas (vector de fila). aquí en el ejemplo 2 y 3 el valor medio 5 y 0.5 muestra que queremos hacer una array vectorial del rango 1 al 20 con un salto de 5 y del rango 0 al 5 con un salto de 0.5 respectivamente. 

MATLAB

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

Producción : 

r_v =

   1   2   3

c_v =

   1
   2
   3

Aquí hay algunos atajos de utilidad para crear arrays y vectores:

MATLAB

% 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)

Producción : 

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. Histogramas: Podemos dibujar la función histogramas hist(). También podemos cambiar el tamaño del cubo o los contenedores del histograma.

MATLAB

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

Producción : 

MATLAB

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

Producción : 

8. Ayuda: Podemos usar el comando de ayuda para ver la documentación de cualquier función.  

MATLAB

help eye
help sqrt
help hist

Producción : 

Publicación traducida automáticamente

Artículo escrito por dikshantmalidev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *