Documente Academic
Documente Profesional
Documente Cultură
Contenido
Variables, Scripts, Operaciones 2. Visualizacin y Programacin 3. Solucin de Ecuaciones y ajuste de datos 4. Imgenes y animaciones
1.
Condiciones
Vamos a dedicar 4 clases de 2 horas cada una
Se debe desarrollar todo lo trabajo en clase Los ejercicios requeridos deben ser remitidos a
Directorio Workspac e
Administrad or de carpetas
Ventana de comandos
Detalles de archivos
Historial de comando s
Creando Carpetas
Las carpetas nos ayudan a organizar el trabajo
Para crear una nueva carpeta hacer click derecho en el
espacios)
Doble click en dia1, all vamos a trabajar
Help y Doc
help Comando de ayuda, el mas importante >> help sin (muestra la ayuda bsica del comando sin)
doc >>doc sin (muestra la ayuda completa del comando sin)
Scripts
Scripts: Coleccin de comandos ejecutados en secuencia Se escriben dentro del editor de Matlab Se guardan como archivos .m
Para crear uno nuevo click en:
El editor
ruta
Puntos de ejecucin
explicitas
Todas las variables creadas y modificadas existen en el
Ejercicio
Cree un script: holamundo
Cuando se lo ejecute debe mostrar: Hola mundo, vamos a repasar Matlab Use disp para mostrar el texto Las cadenas se colocan entre comillas simples:
%holamundo.m %mi primer programa en matlab disp('Hola mundo'); disp('Voy a aprender matlab');
Variables
Matlab es un lenguaje donde no hay que inicializar
variables
Soporta varios tipo de variables: >>3.84 (64 bits doble precisin, por defecto) >>a (caracteres de 16 bits)
Nombrando variables
Para crear una variables simplemente se le asigna un
nmero
>> var1=3.14 >>micadena=hola mundo
Nombres de variables: El primer carcter debe ser una letra Luego se puede usar cualquier combinacin Pilas con las maysculas var1 diferente de Var1
Escalares
A una variable se le puede dar un valor explcito >>a=10 Aparece en el worlspace!
O como una funcin de valores explcitos y variables
existentes
>>c=1.3*45-2*a
Arreglos
Como en todo lenguaje de programacin, los arreglos son
muy importantes
Hay dos claes (1) Matrices de nmeros reales o complejos (2) celdas de arreglos de objetos (estructuras avanzadas de datos)
MATLAB hace que trabajar con vecotores sea fcil
Vectores fila
Para crear un vector fila se coloca coma o espacio entre
Vectores columna
Para crear un vector columna se coloca punto y coma
Matrices
Se hacer tal como los vectores
Elemento a elemento: a= [1 2;3 4]; O encadenando vectores o matrices (!pilas dimensiones!)
Ejercicio: Variables
Cree una variable start usando la funcin clock
Cul es el tamao de start?, Es fila o columna? Qu contiene start? (usar help clock)
funcin datestr y nombre a la nueva variable startString Guarde start y startString en un archivo .m como startTime
Ejercicio: Variables
Lea y muestre la hora y fecha actuales: En holamundo.m lea la variables que acaba de salvar, use load Muestre el siguiente texto: Mi repaso de Matlab empez el: Para mostrar texto use el comando disp
Funciones incorporadas
Matlab tiene una gigantesca biblioteca de funciones
incorporadas
Se las llama con el argumento entre parntesis
sqrt(2)
log(2), log10(0.23) cos(1.2), atan(-.8) exp(2+4*i) round(1.4), floor(3.3), ceil(4.23)
angle(i);
abs(1+i);
Ejercicios: Escalares
El aprendizaje de matlab tiene ritmo exponencial, aada
lo siguiente al script holamundo Si la constante de tiempo de aprendizaje es 1.5 das, calcule los segundos que hay en 1.5 das y llame a esta variable tau Si esta parte del curso durar 4 das, calcule el numero de segundos en 4 das, llame a esta variable findeclase Esta ecuacin describe el ndice de aprendizaje como funcin del tiempo:
= 1
Ejercicios: Escalares
Que tanto sabrn de matlab al final de esta clase?,
Traspuesta
El operador de transposicin convierte un vector columna
resultado
Nota
Todas las funciones que funcionan en escalares
funcionan en vectores
>>t=[1 2 3]; >>f=exp(t); Hace lo mismo que: >>f=[exp(1) exp(2) exp(3)];
Operadores y elementos
Para realizar operaciones que tienen en cuenta la posicin de los
elementos se usa el punto antes del operador: .* ./ .^ las dimensiones de los vectores deben coincidir
Operadores (estandar)
La multiplicacin se puede hacer estndar o elemento a
elemento La multiplicacin estandar (*) resulta en un producto punto o un producto externo La potencia (^) solo se puede aplicar en matrices cuadradas o escalares La divisin izquierda y derecha (/ \) es lo mismo multiplicar por la inversa
12 meses) que contengan el nmero de segundos en cada periodo Cree un vector fila llamado conversionsegundos que contenga los elementos en orden de mayor a menor periodo y finalice con un 1 Cree un vector horaactual usando clock Calcule tiempotranscurrido restando horaactual de strart Calcule t (tiempo pasado en segundos) realizando el producto punto de conversionsegundos y tiempotrasncurrido
Inicializacin automtica
Inicialice vectores de ceros, unos y nmeros aleatorios >>o=ones(1,10) >>z=zeros(23,1) >>r=rand(1,45) >>n=nand(1,69)
La forma general es: >>var=zeros(nmero de filas, nmero de columnas)
Inicializacin automtica
Para incializar un vector lineal de valores se usa linspace >>a=linspace(0,10,5) a empieza en cero, termina en 10 (incluyendoilo) y tiene 5 valores
Se puede usar el operador dos puntos : >>b=0:2:10 B empieza en 0, se incrementa en pasos de 2 y termina en o antes de 10 >>c=1:5 C empieza en 1 y termina en 5, no se especifica el incremento, por defecto es 1 Para inicializar con escala logartmica se usa logspace
Indexacin de vectores
Matlab empieza a indexan en 1 NO en 0
a(n) retorna el n esimo valor
caso cada elemento se examina individualmente y se retorna como un vector del mismo tamao del vector que indexa
Indexacin de matrices
Las matrices se pueden indexar de dos formas Usando subndices (filas y columnas) Usando ndices lineales (como si la matriz fuera un vector)
Ejercicio: Indexacin
Cuando conoceran el 50% de matlab? Primero, encuentren la poscicin del valor donde vectorconocimiento es mas cercano a 0.5, matematicamente, esto es | vectorconocimiento -0.5| esta en un mnimo (use abs y min) Luego use ese indice para locallizar el tiempo correspondiente en tVec y llamelo tiempomedio Finalmente muesrte la linea 'Sabr la mitad de Matlab despues de: X dias Convierta tiempomedio a das usando segpordia
Graficacin
Ejemplo: >>x=linspace(0,4*pi,10) >>y=sin(x)
Grafique los valores vs sus indices: >>plot(y)
help clock start=clock; size(start) help datestr startString=datestr(start); save startTime start startString
segundospordia=24*3600; dia1_5=1.5*segundospordia; tau=num2str(dia1_5); disp(['El nmero de segundos en un da es:' tau]) dia_5=5*segundospordia; endofclass=num2str(dia_5); disp(['El nmero de segundos en 5 das es:' endofclass]) conocimientoalfinal=1-exp(-endofclass/tau); disp(['Al final de este da curso sabr ' num2str(conocimientoalfinal*100)
tVec=linspace(0,str2num(endofclass),10000); conocimientovector=1-exp(-tVec/str2num(tau));
[val,ind]=min(abs(conocimientovector-0.5)); halftime=tVec(ind); disp(['Sabr la mitad de Matlab despues de: ' num2str(halftime/segundospordia) 'das']); figure=plot(tVec/segundospordia,conocimientovector)