OCTAVE
Information General
Octave es "open-source Matlab"
Octave and Matlab GNU Octave es un programa y
lenguaje de programacion para realizar calculos
numericos:
▪ Visualizacion
▪ Programacion,
▪ Desarrollo de algoritmos
▪ Computacion numerica.
1
Inicio de Octave
Ayuda
▪ Escriba help o doc
▪ Para ayuda en un comando especifico (=built-in
function), escriba: help command
▪ Ejemplo: help size, help plot, help figure,
help inv, ...
▪ Para salir escriba q
2
Prompt
▪ Nos indica donde introducimos los comandos
▪ Podemos cambiarlo
Variables y tipos de datos
▪ Matrices (real y complejas)
▪ Strings (matrices de caracteres)
▪ Estructuras
➛ Vector? Es una matriz con 1 columna/fila
➛ Escalar? Es una matriz de dimension 1x1
➛ Enteros? Es un tipo de double
➛ Booleano? Es un entero (non-null=true, 0=false)
3
Variables y tipos de datos
Creando una matriz
▪ Ingrese:
[ → alt + 91
] → alt + 93
Variables y tipos de datos
Cadena de caracteres
▪ Ingrese:
Octave permite usar comillas dobles.
Estructura
4
Variables y tipos de datos
Mostrar Variables
▪ Escriba su nombre:
Suprimir la salida
▪ Agregar a punto y coma:
octave:2> a;
octave:3> sin(phi);
Variables y tipos de datos
▪ Podemos cambiar el tipo de una variable.
s = 3 s = 'octave’
El commando who y whos muestra las variables
usadas:
10
5
Variables y tipos de datos
Precision
Variables → IEEE floating point format.
11
Variables y tipos de datos
Formato de Float Variables
▪ format short 5 digitos
▪ format long 15 digitos
▪ format short e Floating point, 5 digitos
▪ format long e Floating point, 15 digitos
▪ format short g Mejor 5 digitos (mas usada)
▪ format long g Mejor 15 digitos
12
6
Variables y tipos de datos
Funciones para variables Float...
▪ ceil(x) menor entero, mayor que x
▪ floor(x) mayor entero, menor que x
▪ round(x) entero mas cercano
▪ fix(x) redondeo hacia cero
La funcion aplica a cualquier elemento de una matriz.
13
Matrices
Creando una matriz
▪ Ingrese:
octave:1> A = [8, 2, 1; 3, -1, 4; 7, 6, -5]
▪ columns, use coma or espacio
▪ filas, use punto y coma
Ejemplos:
A = [8 2 1;3 -1 4;7 6 -5]
A = [8,2,1;3,-1,4;7,6,-5]
14
7
Matrices
Creando una matriz
octave:2> phi = pi/3;
octave:3> R = [cos(phi) -sin(phi); sin(phi) cos(phi)]
R =
0.50000 -0.86603
0.86603 0.50000
15
Matrices
Creando una matriz de matrices
octave:1> m1 = [1 1 1; 2 2 2]; m2 = [33; 33];
▪ Por Columnas
octave:2> C = [m1 m2]
C =
1 1 1 33
2 2 2 33
▪ Por Filas:
octave:3> D = [m1; [44 44 44]]
D =
1 1 1
2 2 2
44 44 44
16
8
Matrices
Indexando
▪ aij = A(i,j) elemento
▪ r = A(i,:) fila
▪ c = A(:,j) columna
▪ B = A(i:k,j:l) submatriz
▪ Comando end :
octave:1> data = [4 -1 35 9 11 -2];
octave:2> v = data(3:end)
v =
35 9 11 -2
17
Matrices
Dos puntos ‘:’, significa :
▪ Selecciona una columna o fila completa
A(3,:), B(:,5)
▪ Define un rango
indices = 1:5 vector 1,2,3,4,5
steps = 1:3:61 vector 1,4,7,...,61
t = 0:0.01:1 vector 0,0.01,0.02,...,1
inicio incremento fin
▪ Tambien podemos usar: linspace
18
9
Matrices
Asignando Fila y Columna
▪ Si referenciamos varios, se aplica a todos los
elementos.
octave:1> A = [1 2 3 4 5; 2 2 2 2 2; 3 3 3 3 3];
octave:2> A(3,:) = 7;
Agregando Fila y Columna
▪ Si no existe, se agrega.
octave:3> A(4,:) = 4
A =
1 2 3 4 5
2 2 2 2 2
-3 -3 -3 -3 -3
4 4 4 4 4
19
Matrices
Borrando Fila y Columna
Asignando una matriz vacia[] :
octave:4> A(2,:) = []
A =
1 2 3 4 5
7 7 7 7 7
4 4 4 4 4
octave:4> A(:,1:2:5) = []
A =
2 4
2 2
7 7
4 4
20
10
Matrices
Tamano:
▪ nr = size(A,1) Filas de A
▪ nc = size(A,2) Columnas de A
▪ [nr nc] = size(A) Fila y Columnas de A
▪ l = length(A) Fila o Columna mas alto
▪ numel(A) Numero de elementos en A
▪ isempty(A) Verificar matriz vacia []
Tambien en Octave:
▪ nr = rows(A) Filas de A
▪ nc = columns(A) Columnas de A
21
Matrices
Operaciones Basicas
▪ B = 3*A Multiplicacion por escalar
▪ C = A*B + X - D Suma y Multiplicacion
▪ B = A' Transpuesta
▪ B = inv(A) Inversa
▪ d = det(A) Determinante of A
22
11
Matrices
Operaciones con vectores
Si x es un vector columna
▪ s = x’*x Producto, escalar
▪ X = x*x’ Producto externo, matriz
▪ e = x*x error
Operaciones por Elemento (para vectores/matrices)
▪ s = x.+x suma
▪ p = x.*x multiplicacion
▪ q = x./x division
▪ e = x.^3 potencia
23
Matrices
Otras Funciones
▪ sum(v) suma de elementos
▪ cumsum(v) suma acumulativa
▪ prod(v) producto de elementos
▪ cumprod(v) producto acumulativo
▪ diff(v) Diferencia de elementos contiguos
[v(2)-v(1) v(3)-v(2) ...]
▪ mean(v) Promedio
▪ std(v) Desviacion Standard
24
12
Matrices
Otras Funciones
▪ min(v) minimo valor
▪ max(v) maximo valor
▪ sort(v,'ascend’) ordenar
▪ sort(v,'descend’) ordenar
▪ find(v) vector de indices de los elementos
non-zero
25
Matrices
Matrices Especiales
▪ A = zeros(m,n) matriz cero m x n
▪ B = ones(m,n) matriz 1s m x n
▪ I = eye(n) matriz identidad n
▪ D = diag([a b c]) Matriz diagonal 3 x 3
26
13
Matrices
Random Matrices and Vectors
▪ R = rand(m,n) Matriz con numeros
distribuidos uniformemente
intervalo [0..1]
▪ N = randn(m,n) Matriz con numeros
distribuidos normalmente
intervalo [0..1]
▪ v = randperm(n) Vector fila con permutaciones
de 1 hasta n
27
Cadenas
▪ strcat concatena strings
▪ int2str entero a string
▪ num2str numero a string
▪ sprintf datos con formato a string.
s = strcat(‘Linea ',int2str(A),', p = ',num2str(p,4))
28
14
Strings
En Octave revise y de un ejemplo de cada comando:
help comando :
strcmp, strncmp, strmatch,
char, ischar, findstr, strfind, str2double,
str2num, num2str, strvcat, strtrim, strtok,
upper, lower.
29
15