Professional Documents
Culture Documents
Introduccin al MATLAB
MATLAB = MATrix LABoratory Es un entorno de computacin que presenta facilidades para clculo matemtico y visualizacin grfica Dispone de toolboxes especializados: Control Systems, Neural Netword, Optimization, etc.
En la Ventana de Comandos Command Windows se puede trabajar de manera interactiva. Pruebe los siguientes comandos:
clock fix(clock) k = 2^10 x = rand X = fix(rand * 10) r = 2 ; sup = pi * r ^ 2
workspace
En la Ventana de Comandos Command Windows se puede trabajar de manera interactiva. Pruebe los siguientes comandos:
clock Devuelve fecha y hora del sistema fix(clock) Fecha y hora del sistema con enteros k = 2^10 2 elevado a la 10 x = rand un nmero aleatorio 0 <= x < 1 X = fix(rand * 10) nmero entero aleatorio 0 <= X < 10 r = 2 ; sup = pi * r ^ 2 Calcula la superficie de un crculo de radio 2 workspace abre la ventana workspace dnde pueden inspeccionarse las variables actualmente definidas
Nombres de variables :
Se debe tener cuidado con los nombres de las variables que se utilizan Probar lo siguiente:
sin = 5 y = sin(pi)
la variable sin oculta la funcin del mismo nombre. En este caso ser til el comando clear
En lugar de coma (,) puede utilizarse un espacio, y en lugar de punto y coma (;) puede utilizarse un retorno de carro Ejemplo:
A=[1,2,3; 4,5,6] o simplemente: A=[1 2 3 4 5 6]
2) Verificar si efectivamente magic(4) es un cuadro mgico comprobando que las filas, columnas y diagonales principales sumen exactamente el mismo valor (utilizar funciones diag y rot90)
2) Verificar si efectivamente magic(4) es un cuadro mgico comprobando que las filas, columnas y diagonales principales sumen exactamente el mismo valor (utilizar funciones diag y rot90)
Rta: hay que realizar las siguientes operaciones: A=magic(4) sum(A) se obtienen las sumas de las columnas sum(A') se obtienen las sumas de las filas sum(diag(A)) se obtiene la suma de la diagonal principal sum(diag(rot90(A))) se obtiene la suma de la otra diagonal
1 1 5
Operadores .* ./ .^
En MATLAB se puede aplicar elemento a elemento los operadores (* / ^) Para ello se los precede por un punto(.)
[1 2 3 4]^2 ??? Error using ==> ^ Matrix must be square. [1 2 3 4].^2 ans = 1 4 9 16 [1 2 3 4]*[1 -1 1 -1] ??? Error using ==> * Inner matrix dimensions must agree. [1 2 3 4].*[1 -1 1 -1] ans = 1 -2 3 -4
Operadores relacionales
< menor que > mayor que <= menor o igual que >= mayor o igual que == igual que ~= distinto que Si una comparacin se cumple el resultado es 1 (true), mientras que si no se cumple es 0 (false).
Operadores lgicos
& | ~ and or negacin lgica
Cuando los operadores relacionales se aplican a matrices del mismo tamao, la comparacin se realiza elemento a elemento
>> A=[1,2;3,4]; >> B=[4,3;3,2]; >> A==B ans = 0 0 1 0 >> A~=B ans = 1 1 0 1
Si se compara una matriz con un escalar, La comparacin se realiza entre el escalar y cada elemento de la matriz.
>> A=[1,2,2;2,3,3;4,4,2]; >> A==2 ans = 0 1 1 1 0 0 0 0 1
Ejercicios
1) Escribir una expresin que compute la cantidad de numeros 3 que posee una matriz A. 2) Escriba una expresin que devuelva el valor mximo de cada fila de una matriz A (funcin max). 3)Escriba una expresin que devuelva true (1) si todos los elementos de una matriz son iguales.
Ejercicios
1) Escribir una expresin que compute la cantidad de numeros 3 que posee una matriz A.
sum(sum(A==3))
2) Escriba una expresin que devuelva el valor mximo de cada fila de una matriz A (funcin max).
max(A')'
3)Escriba una expresin que devuelva true (1) si todos los elementos de una matriz A son iguales.
max(max(A))==min(min(A))
13 12
Obsrvese que tambin puede utilizarse un vector como ndice. En este caso sirve para poder seleccionar filas disjuntas
Ejercicios
1) Construir una matriz A de 2x6 formada por la segunda y tercera fila de magic(6) 2) Eliminar la columna 3 3) Obtener el vector suma por columna y agregarlo como ltima fila de A 4) Obtener el vector suma por fila y agregarlo como ltima columna de A
Ejercicios
1) Construir una matriz A de 2x6 formada por la segunda y tercera fila de magic(6)
A=magic(6); A=A(2:3,:)
2) Eliminar la columna 3
A=A(:,[1,2,4:6])
Programacin en MATLAB
SENTENCIA IF
if condicion1 bloque1 elseif condicion2 bloque2 elseif condicion3 bloque3 else bloque4 end
Programacin en MATLAB
SENTENCIA IF
Ejemplo: if x==0 disp('x es igual a cero') elseif x > 0 disp('x es mayor que cero') else disp('x es menor que cero') end
Programacin en MATLAB
SENTENCIA FOR
for i=limiteInf:step:limiteSup sentencias end o bien, for i=vectorValores sentencias end
Programacin en MATLAB
SENTENCIA FOR
Ejemplo: for i = 0:2:10 disp(2^i) end
Programacin en MATLAB
SENTENCIA WHILE while condicion sentencias end
Programacin en MATLAB
SENTENCIA WHILE
Ejemplo r=input('Ingrese el radio o cero para terminar '); while r > 0 sup=pi*r^2; fprintf('Superficie = %.2f\n',sup) r=input('Ingrese el radio o cero para terminar '); end
Programacin en MATLAB
SENTENCIA BREAK
Hace termina la ejecucin del bucle ms interno Ejemplo while 1 r=input('Ingrese el radio o cero para terminar '); if r <= 0; break; end; sup=pi*r^2; fprintf('Superficie = %.2f\n',sup) end
Archivos de extensin .m
Son archivos de textos que se utilizan para definir funciones y scripts. Puede utilizarse cualquier editor de texto, pero MATLAB posee uno especializado con facilidades para depuracin. Pueden invocarse desde la ventana de comandos o desde otros scripts o funciones. Estarn accesibles aquellos scripts y funciones de los directorios agregados en el path de MATLAB y los del directorio corriente.
Definicin de Scripts
Los scripts son archivos que contienen una sucesin de comandos anloga a la que se tecleara en la ventana de comandos. Las variables definidas en los scripts son globales y permanecen en memoria al terminar la ejecucin del script
Verificar el workspace
Definicin de funciones
La primera lnea de un archivo llamado name.m que define una funcin tiene la forma: function [lista arg. salida] = name(lista arg.entrada) name es el nombre de la funcin. Si hay un nico argumento de salida pueden omitirse los corchetes Las variables que se utilicen son locales, no permanecen en el workspace una vez finalizada la funcin.
Ejemplo
Ejercicios
1) Programe la funcin dibujarSeno(a,b) que dibuja la grfica del seno en el intervalo [a,b]. 2) Escriba la funcin para la resolucin de ecuaciones de segundo grado ax2 + bx + c = 0 implementando la frumla