% ========================================================================
%
% CLASE N°1
% INTRODUCCIÓN AL MANEJO DE MATLAB PARA SERIES DE TIEMPO
% Introducción a Matlab
%
% ========================================================================
% Course: Applied Macroeconometrics
% Author: Greey Christian Perez Sanchez
% Contact: [Link].s@[Link]
%% Tema 1: El entorno de trabajo de Matlab
% Matlab es el nombre abreviado de MATrix LABoratory (laboratorio de matrices).
% Es un lenguaje de alto nivel, para el cálculo técnico y numérico.
% Permite trabajar con vectores, matrices, números escalares y cadenas de carácteres.
% ====================================
% Workspace: El espacio de trabajo
% ====================================
% Es la ventana que contiene el conjunto de variables y de funciones creadas por el usuario.
% Generamos las siguientes variables:
a = 365*3000 + 299;
b = 2022/700 - 299;
% Y la siguiente operación:
9432 + 7999;
1+3;
% ===========================================
% Command Window: La ventana de comandos.
% ===========================================
% [1] Ejecuta las instrucciones de Matlab;
% [2] Es donde se muestra los resultados correspondientes a dichas instrucciones.
% - Símbolo >> : es el "prompt" que indica que la ventana de comandos está en modo normal,
% e indica que está listo para recibir órdenes.
% Nota:
% - Si se añade un (;) al final de la instrucción, MATLAB no muestra la respuesta.
% - Cuando el resultado de una operación no ha sido asignado a ninguna variable,
% Matlab utiliza un nombre de variable por defecto: ans (de answer).
% ================================================
% Current Folder: El folder o directorio actual
% ================================================
% Comandos:
pwd
%(print working directory) permite saber cual es el directorio actual.
cd
% Permite cambiar el directorio actual.
% Ejemplo:
cd('C:\Users\Greey\Desktop\GREEY 2025\Macroeconometría\Módulo_2\Session1') %Cambiar cd.
cd('C:\Users\Greey\Desktop\GREEY 2025\Macroeconometría\Módulo_1\Session5')
% ================================================
% Editor:
% ================================================
% Matlab dispone de un editor que permite crear y modificar los ficheros *.m,
% y cómo ejecutarlos paso a paso para ver si contienen errores (proceso de Debug o depuración).
% Nota:
%
% Breakpoint:
% - Lo utilizamos al ejecutar el programa pero controladamente;
% es decir, los brekpoints son puntos en los cuáles se pausa
% la ejecución del programa, de tal manera que sea posible por
% ejemplo de examinar y encontrar posibles errores más fácilmente.
% Un archivo (fichero) *.m puede contener: un conjunto de comandos o funciones.
% El editor muestra con diferentes colores los diferentes comandos:
%De color violeta: Cadena de caracteres (arreglo de caracteres). Ejemplo:
c = 'Hello World';
%De color verde: comentarios, usando el carácter " % ".
% Matlab permite comentar bloques de sentencias:
%{
"Muchos años después, frente al pelotón de fusilamiento, el coronel
Aureliano Buendía había de recordar aquella tarde remota en que su
padre lo llevó a conocer el hielo".
- Cien Años de Soledad, Gabriel García Marquez.
%}
% Comandos adicionales:
clc;
% Permite limpiar la pantalla de la ventana de comandos.
clear;
% Elimina todas las variables creadas previamente.
close all;
% Permite cerrar ventas de Matlab, por ejemplo, cerrar todas las figuras.
%% Tema 2: Operaciones con vectores y matrices:
% Vectores Fila:
A = [1 10 20 30 40];
B = [5,10,15,20,25]; %Matlab es indiferente si se utiliza espacio o coma simple.
% Vectores Columna:
C =[1;10;20;30;40;50];
% También, podemos convertir vectores usando transpuesta:
% Vector Fila a Vector columna:
D = A';
E = [1 10 20 30 40]';
% Los Vectores Rangos:
% Permiten generar vectores fila a través de una progresión aritmética.
F = 1:10;
G = 2000:0.25:2021;
% Tamaño de Vectores:
size(A)
size(A,1) % Se obtiene el # de filas.
size(A,2) % Se obtiene el # de columnas.
% También:
length(A) % Nos ofrece el # de columnas.
% Generando Matrices:
M = [-3 2 1; 3 4 9; 1 7 8];
N = [1 2 3; 6 7 9; 11 8 5];
% create a matrix of zeros
O = zeros(10,10);
% create a matrix of ones
P = ones(10,20);
% create an identity matrix
Q = eye(10);
% create a 10 by 10 matrix from N(0,1)
R = randn(10,10);
% create a 10 by 10 matrix from U(0,1)
S = rand(10,10);
% Operaciones con Matrices:
% En primer lugar:
t = M.*N; % Multiplicación de cada elemento de M y N.
u = M*N; % Multiplicación matricial.
v = M/N; % M se multiplicaría por la inversa de N.
w = M\N; % La inversa de M pre-multiplica a N.