% OCTAVE es un lenguaje de script que permite realizar calculos,
% especialmente operaciones matriciales.
% Se puede escribir "octave" en el prompt de LINUX y trabajar
% interactivamente, o bien tener un conjunto de instrucciones
% guardadas en un archivo (prog.m) y ejecutarlas con "octave prog.m"
% desde el prompt de LINUX. La primera forma es util para probar
% cosas, y la segunda es recomendable para hacer los practicos.
% Los comentarios se hacen poniendo el simbolo "%" al pricipio de un renglon
% Para buscar ayuda de un comando (e.g., rand)
help rand
% Hay algo para calcular autovalores (eigenvalues en ingles)?
lookfor eigenvalues
% que variables hay ya definidas?
who
% borrar todas las variables definidas hasta ahora
clear
% Hice muchas cosas pero no tome nota...
history
% probar:
history 10
% quiero guardar todas las cosas que vaya haciendo en el interprete
diary on
diary off
%%%%%% GENERAR DATOS
% Crear vectores y matrices: "," o espacio separa elementos,
% y ";" separa columnas
A = [ 1, 2, 3, 4 ]
A = [ 1 2 3 4 ]
A = [ 1, 2; 3, 4 ]
A = [ 1 2; 3 4 ]
% Para ver un elemento de la matriz, o una parte:
A(1,2)
A(1,:)
A(:,2)
% Notar que OCTAVE siempre muestra el resultado de una operacion.
% Para que no lo muestre, poner ";" al final:
A = [ 1 2; 3 4 ];
% el vector de 1 a 10
b = [1:10]
% el vector de 1 a 10, con saltos de a 0.1
c = [1:0.1:10]
% Matriz 2x3 con ceros o unos
C = zeros(2,3)
D = ones(2,3)
% matriz identidad 2x2
E = eye(2)
% 25 numeros aleatorios uniformes entre 0 y 100
u = unifrnd(0, 100, 1, 25)
% 25 numeros aleatorios gaussianos con media 0 y sigma 5
% Create a 5x5 matrix with normally distributed random variables with a
% mean of 2.5 and a sigma of 5.0.
N = normrnd(0, 5, 1, 25)
% OCTAVE es muy bueno haciendo operaciones matriciales.
% Por ejemplo, calcular la traspuesta e inversa de una matrix A:
A'
inv(A)
% Que hace esto? :
H = A * 2 + A .* E + A .^ 2
% ESTRUCTURAS DE PROGRAMA
% Funciones:
% Las funciones tienen el siguiente formato:
% function [salida1, salida2, ...] = <nombre_funcion>(entrada1, entrada2, ...)
%
% end
% ejemplo de funcion:
function s = sumar(a, b)
s = a + b;
end
% luego,
mysuma = sumar(4,5)
% hace lo mismo que
mysuma = 4 + 5
% Lazos y condiciones:
for i=1:10
if mod(i,2)==0
disp(['par: ', num2str(i)])
else
disp(['impar: ', num2str(i)])
end
end
% GRAFICOS (BASICO)
% Si quiero graficar dos vectores, x, y:
plot(x,y)
% (deben ser del mismo tama#o)
% Por ejemplo, para graficar seno y coseno:
% ("hold: es para que no borre el anterior)
x = [-pi:0.1:pi]
plot(x, sin(x))
hold on
plot(x, cos(x))
% Ahora lo mismo, con una linea de comandos, pero en seno con
% puntos (o) rojos (r) y el coseno con linea azul (b):
plot(x, sin(x), 'ro', x, cos(x), 'b')