Introduccion al uso de Matlab Table of Contents Definicion de Variables en el entorno de trabajo ...................................................................... Operaciones Básicas ........................................................................................................... Funciones y mas funciones .................................................................................................. Graficos! ........................................................................................................................... Control de flujo en un script ................................................................................................ 1 2 2 2 3 Definicion de Variables en el entorno de trabajo En Matlab se pueden definir variables de distinto tipo de manera dinámica, es decir, sin antes reservar espacio en memoria. % Un numero entero de 8 bits A = int8(1) % B % % Un numero racional de doble precision (16bits) = double(3.1415); Observe que el uso de ; suprime la salida del resultado a la linea de comandos C = 'hola mundo!'; %Es una variable de tipo string, es decir, texto. D = [1:10]; % es un vector fila que contiene los numeros 1,2,3,...,10 E = [1:2:10]'; % es un vector columna, resultante de trasponer el vector % usando el operador ' a continuacion de la definicion del vector fila. % Observar tambien que el uso de :2: obliga a usar un paso de tamaño 2; F = [1:10;1:2:20;1:3:30;1:4:40]; % El uso del operador ; separa las % filas de la matriz F % Ademas de los numero y las matrices, es posible definir estructuras y % celdas. % Una Estructura (struct) puede contener todos los tipos de variables % definidas anteriormente: G.entero = A; G.racional = B; G.texto = C; G.fila = D; G.columna = E; G.matriz = F; % una estructura tambien puede contener otras estructuras: H.estructura = G; % De manera similar es posible definir celdas (cell) I{1,2,3}=H; % celda puede tener mas de 1 dimension 1 Introduccion al uso de Matlab clear all; % produce la eliminacion de las variables definidas en memoria clc; % borra los resultados de la ventana de comandos A = 1 Operaciones Básicas Las operaciones aritmeticas entre numeros de doble precision se conservan, sin embargo, se debe tener precaución con la mezcla de numeros: A C % % % D = int8(10); B = double(12.2); = A + B; % producirá un entero de 8bit ya que este limita la operacion Entre vectores, las operaciones siguen las mismas reglas de siempre, salvo que se declaren con el operador . (punto) lo que provoca la operacion elemento a elemento = ones(10); E = zeros(10,10); F = D.*E; clear all; clc; Funciones y mas funciones El uso de funciones esta restringido al tipo de variables manejadas por cada una. raiz3 = sqrt(3); % entregará un doble correspondiente a la raiz de 3, sin % embargo, sqrt(int8(3)) resultará en un error ya que el resultado, un % irracional, no corresponde a un entero de 8bits. % Ademas de las funciones cotidianas, es posible definir funciones % personalizadas, llamadas handles dist_xyz = @(x,y,z) sqrt(x.^2 + y.^2 + z.^2); disp(['La distancia al vector (1,1,1) es: ' num2str(dist_xyz(1,1,1))]) %Actividad en clase: Definir una funcion en un script. Definir una ayuda. clear all; clc; La distancia al vector (1,1,1) es: 1.7321 Graficos! El concepto de matriz esta filtrado hasta los objetos graficos en matlab. La creacion de una figura genera una serie propiedades que estan ligadas a esa figura y a los objetos que contiene. Para crear una figura basta con usar el comando h=figure, % asociado a esta figura se crea el objeto gcf (current figure handle). % Para colocar un set de ejes bidimensionales sobre esta figura, % simplemente es necesario el comando axis; 2 Introduccion al uso de Matlab x = linspace(0,1,20)'; y = sqrt(x); % para graficar en el plano cartesiano, se utiliza el comando plot: plot(x,y,'k .-','LineWidth',2,'MarkerSize',22) % Actividad en Clase: generar un script para explorar y cambiar las % propiedades de un grafico. clear all; clc; close all; % cierra todas las ventas de graficos abiertas en el entorno h = 1 Control de flujo en un script Ordenes condicionales, if y switch El comando if cond1 elseif cond2 else default end es una sentencia condicional usada para condicionar la ejecucion de acciones a la ocurrencia de las condiciones cond1 y cond2, en caso contrario se ejecuta la accion default. k1 = rand(1) % Variable logica (boolean) if round(k1) disp('El resultado es mayor o igual que 0.5') caso = 1; else disp('El resultado es menor que 0.5') caso = 2; end; % la orden switch selecciona la ejecucion de una accion segun la % ocurrencia de case == valor seleccionado switch caso case 1 disp('Ocurrió el primer caso') case 2 disp('Ocurrió el segundo caso') end; % Ciclos for y while % El ciclo for (itervar)... acciones... end conciste en la iteracion de las % acciones el numero de veces definidas por la variable de iteracion % itervar for k = 1:10 disp(['Contando desde 1 hasta 10: ' num2str(k)]) end; % El ciclo solo se ejecuta el numero de veces especificadas en itervar y % luego termina. Para salir de la iteracion antes del termino normal se % utiliza break for k = 1:10 disp(['Contando desde 1 hasta 10: ' num2str(k)]) if k==5 disp('solo se contar hasta 5, adios!') 3 Introduccion al uso de Matlab break; end; end; % El ciclo while (cond)...acciones... end ejecuta las acciones mientras el % valor de la condicion cond sea verdadero: tol=0.5; while tol>0.01 tol = tol^2; end; disp(['el valor final del tol es: ' num2str(tol)]) % Actividad final: generar un problema que reuna las sentencias de control % mostradas. k1 = 0.7060 El resultado es mayor o igual que 0.5 Ocurrió el primer caso Contando desde 1 hasta 10: 1 Contando desde 1 hasta 10: 2 Contando desde 1 hasta 10: 3 Contando desde 1 hasta 10: 4 Contando desde 1 hasta 10: 5 Contando desde 1 hasta 10: 6 Contando desde 1 hasta 10: 7 Contando desde 1 hasta 10: 8 Contando desde 1 hasta 10: 9 Contando desde 1 hasta 10: 10 Contando desde 1 hasta 10: 1 Contando desde 1 hasta 10: 2 Contando desde 1 hasta 10: 3 Contando desde 1 hasta 10: 4 Contando desde 1 hasta 10: 5 solo se contar hasta 5, adios! el valor final del tol es: 0.0039062 Published with MATLAB® R2013a 4