Está en la página 1de 29

Universidad de Concepción

Facultad de Ciencias Físicas y Matemáticas
Departamento de Geofísica
Avda. Esteban Iturra s/n - Casilla 160-C – Teléfono 204136 – FAX 220104

Introducción al trabajo con Matlab
Matlab (Matrix Laboratory) es un lenguaje de programación de alto nivel orientado al trabajo con
vectores y matrices. Matlab integra la computación, visualización y programación en un ambiente
fácil de usar, donde los problemas y soluciones son expresados en una notación matemática
familiar.
El uso típico de Matlab incluye aplicaciones en:
1. Computación y matemáticas
2. Desarrollo de algoritmos
3. Modelación y simulación
4. Exploración, visualización y análisis de datos
5. Aplicaciones graficas
Consideraciones:
1. no se declaran las variables, como en Fortran, c, c++
2. Trabaja con doble precisión
3. Distingue mayúsculas y minúsculas

1.- Aspectos básicos
help: El comando “help” acompañado con el nombre de la función o programa, entrega
información de lo que hace la función o el programa. Este es muy útil cuando no se sabe usar una
función en particular.
Ejemplo 1.1
help inv
INV
Matrix inverse.
INV(X) is the inverse of the square matrix X.
A warning message is printed if X is badly scaled or
nearly singular.
See also SLASH, PINV, COND, CONDEST, LSQNONNEG, LSCOV.

En la última línea entrega otras funciones relacionadas con la función que se esta interrogando.

Análisis de datos Geofísicos (513421)

Universidad de Concepción
Facultad de Ciencias Físicas y Matemáticas
Departamento de Geofísica
Avda. Esteban Iturra s/n - Casilla 160-C – Teléfono 204136 – FAX 220104

pwd: El comando pwd permite desplegar el directorio (carpeta) en que se esta trabajando.
Ejemplo 1.2
pwd
ans =
C:\matlabR12\work

whos: El comando whos entrega una lista de las variables que se están utilizando. En la lista se
indica el nombre, la longitud (dimensión del arreglo) y el tamaño (numero de bytes) de cada
variable.
what: El comando what entrega un listado de los programas que se encuentran en el directorio en
que se esta trabajando.
Ejemplo 1.3
what
M-files in the current directory C:\matlabR12\work
eje1
eje2

eje3
f1

newton
ra_ejemplo

rm_newton

ls: El comando ls muestra todo los archivos, carpetas, datos en el directorio de trabajo
Ejemplo 1.4
ls
ESTACIONES.txt
Programa01_1997.m

eje2.m
eje3.m

perfiles.m
respaldo1.m

cd: El comando cd (change directory) permite cambiar el directorio de trabajo.
Ejemplo 1.5
cd d:\ocefisica\programas
cd('d:\ocefisica\programas')

addpath: Permite añadir un directorio al entorno del matlab. La carpeta se instalará mientras se
este trabajando.
Ejemplo 1.6
addpath d:\dataproc\rutinas - begin
addpath('d:\dataproc\rutinas ')
path(path,'c:\sam\matlab\plan_crucero');

Análisis de datos Geofísicos (513421)

1 4 8 5] A= 1 5 1 2 4 4 3 6 8 4 7 5 Análisis de datos Geofísicos (513421) 9 10 .Vectores y matrices: definición y operaciones Un vector fila o columna se puede definir de la siguiente forma: a = [1 2 3 4] a = 1 2 3 4 a = [1. Esteban Iturra s/n . 2. 5 4 6 7.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda. 3. 4] a = 1 2 3 4 a = [1 2 3 4]' a = 1 2 3 4 a = [1. 3.Casilla 160-C – Teléfono 204136 – FAX 220104 2. 4] a = 1 2 3 4 a = 1:10 a = 1 % Crea un vector correlativo del 1 al 10. 2. 2 3 4 5 4 7 10 13 6 7 8 a = 1:3:15 a = 1 Un matriz se puede definir de las siguiente forma: A = [1 2 3 4..

Operadores de vectores y matrices Operador Nombre * / + . se utiliza para introducir comentarios.*b d = 15 44 % Multiplicación elemento a elemento 36 156 e = d' % Transpuesta de una matriz. Esteban Iturra s/n .1. b = [5 9. Análisis de datos Geofísicos (513421) .Casilla 160-C – Teléfono 204136 – FAX 220104 A = [1 2 3 4 5 4 6 7 1 4 8 5] A= 1 5 1 2 4 4 3 6 8 4 7 5 Nota: si se coloca (.* ^ .) al final de la línea. 4 6]. 11 26]. e = 15 36 44 156 Nota: El símbolo porcentual (%). c = a*b c = 59 86 % Multiplicación de dos matrices 131 192 d = a./ . la variable no se despliega en pantalla. Ejemplo 2.1 a = [3 4.^ ' Multiplicación División Resta Suma División elemento a elemento Multiplicación elemento a elemento Exponente Elevar a exponente elemento a elemento Transpuesta. Tabla 2.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.

Ejemplo 3.5:6) ej_33 = 19 23 27 10 14 18 24 25 20 15 16 11 % Extrae la ultima fila de la matriz.Extracción de filas y columnas de una matriz Cuando se trabaja con una matriz de datos.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda. mat = magic(6) mat = 35 3 31 8 30 4 1 32 9 28 5 36 6 7 2 33 34 29 26 21 22 17 12 13 19 23 27 10 14 18 24 25 20 15 16 11 % Extrae las primeras tres filas de la matriz.4 y 6.:) ej_31 = 35 3 31 1 32 9 6 7 2 26 21 22 19 23 27 24 25 20 % Extrae las filas 1. Esteban Iturra s/n .1.5 y las columnas 2.3. % -------------------------ej_33 = mat(:.Casilla 160-C – Teléfono 204136 – FAX 220104 3. % ----------------------------------- Análisis de datos Geofísicos (513421) . % -------------------------------------------ej_31 = mat(1:3. por ejemplo un archivo conteniendo varias series de tiempo. % ---------------------------------------------ej_32 = mat([1 3 5]. generalmente no toda la matriz de datos se utiliza para el análisis y en estos casos es preferible extraer solamente las columnas o filas de esa matriz..[2 4 6]) ej_32 = 1 9 5 26 22 12 24 20 16 % Extrae las columnas 5 y 6.

1988 0. i] = max(x) y = inv(x) y = cov(x) y = corrcoef(x) [vec.4057 0.2722 0.4660 0. Calcula la matriz de correlación.4451 0.:) ej_34 = 4 36 29 13 18 11 % Elimina las dos primeras filas.4860 0. M = [0.0185 0.1.1.9355 0. Funciones Función n = Length(x) [m.Casilla 160-C – Teléfono 204136 – FAX 220104 ej_34 = mat(end. Encuentra el máximo valor de una vector.7382 0.0579 0. Encuentra el mínimo valor de una vector. Calcula la desviación estándar de un vector o matriz. i] = sort(x) y = sum(x) y = mean(x) y = std(x) [y. Esteban Iturra s/n .4565 0. n] = size(x) [y. n = columnas.3529 0. Calcula la suma de un vector o matriz.9501 0. Calcula la media de una vector o matriz.9318 0.4186].8132 0. Calcula los valores y vectores propios. Descomposición de valor singular. Análisis de datos Geofísicos (513421) .Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.9218 0. % m = filas. Ejemplo 4.2311 0.8214 0. Calcula la inversa de una matriz. Tabla 4.:) = [] mat = 8 30 4 28 5 36 33 34 29 17 12 13 10 14 18 15 16 11 4.Algunas funciones útiles Todas las funciones listadas en la tabla 4.8913 0.6154 0. Calcula la matriz de varianza y covarianza. i] = min(x) [y.4447 0.1 operan sobre las columnas.7468 0.1389 0.V] = svd(x) Determina la longitud del vector.6068 0..0099 0.1987 0.7621 0.2028 0. L] = eig(x) y = det(x) [U.9169 0.7919 [m n] = size(M) m = 6 0.1763 0. % ------------------------------mat(1:2.4103 0.0153 0. Determina la dimensión de un vector o matriz.S.8936 0.6038 0. Ordena los elementos de un vector en orden ascendente. Calcula el determinante de una matriz.

6117 0.3618 -0.7071 2.0000 0.0000 -0.0000 -0.0000 -0.4193 -1.0094 0.5378 1.5998 0.4697 -0.3877 -0.0000 1.6904 -3.3877 1.2521 -0.0944 2.1061 -0.4697 -0.8936 0.2692 0.0094 1.7553 1.6549 0.2283 0.6448 2.3140 3.3618 Análisis de datos Geofísicos (513421) .3682 2.0236 0.0000 -0.0000 0.0000 -0.7553 -0.9938 0.0858 -0.0000 0.1843 -0.2521 -0.0000 -0.0000 -0.9318 0.0000 0.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.9501 0.2702 0.0000 1.0000 0.3201 0.7617 -0.3970 -0.0000 0.0000 0 1.2949 ej_45 = det(M) ej_45 = -0.7205 2.0000 1. Esteban Iturra s/n .0000 0.0000 0.3420 1.6038 0.0000 -0.3970 0.1310 -5.0000 0.3097 Identidad = M * ej_46 Identidad = 1.2283 -0.4411 -0.0000 ej_43 = max(M) ej_43 = 0.8214 ej_44 = [mean(M).9355 0.5297 -0.Casilla 160-C – Teléfono 204136 – FAX 220104 n = 6 ej_42 = sum(M) ej_42 = 3.5276 -0.0000 0 0.7580 -4.1843 1.7462 -4.4230 0.7891 0.0000 0.0950 -0.0000 0.6079 -0.6516 -1.6099 3.5742 -0.0000 0.3074 -0.3074 -0.6824 0.0000 0.7891 -0.6078 -4. std(M)] ej_44 = 0.9062 -0.6546 0.4158 1.5247 0.0950 -0.7522 -2.4688 -2.8567 -0.0000 0.1515 -0.7617 0.5641 1.0000 0.0000 0.0000 0.0194 ej_46 = inv(M) ej_46 = 5.0000 0 0.1260 6.5039 0.1693 0.0000 ej_46 = corrcoef(M) ej_46 = 1.6152 3.2199 5.0000 0.0000 0.1484 4.0000 1.4411 0.5353 3.1305 -2.6117 1.0000 0.0000 -0.0000 0.3695 0.3927 -1.9274 3.1942 -6.

identidad de dimensión n x m.8) ej_49 = 0. ej_47 = zeros(3.8462 0.7095 0.6979 0.8381 0.6) ej_47 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ej_48 = ones(5) ej_48 = 1 1 1 1 1 1 1 1 1 1 0 0 0 % es lo mismo que ones(5.8537 0.8318 0.Casilla 160-C – Teléfono 204136 – FAX 220104 Tabla 4.6813 0.0196 0.5417 0. aleatoria normalmente distribuida.8600 0.6822 0.5936 Análisis de datos Geofísicos (513421) .2 Matrices predefinidas MATRICES PREDEFINIDAS x x x x x = = = = = zeros(n.3795 0.5) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ej_49 = rand(3.1934 0.4289 0.m) eye(n.3028 0. Esteban Iturra s/n .5028 0.3046 0.m) rand(n.5252 0.1509 0. de unos de dimensión n x m.1897 0.m) Crea Crea Crea Crea Crea una una una una una matriz matriz matriz matriz matriz de ceros de dimensión n x m.2026 0.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda. con números aleatorios de dimensión n x m.3784 0.6721 0.m) ones(n.m) randn(n.

FUNCIONES PARA REDONDEAR VALORES Y Y Y Y = = = = round(x) ceil(x) fix(x) floor(x) Redondea Redondea Redondea Redondea hacia hacia hacia hacia el el el el entero más cercano infinito (+) cero.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda. infinito (-) 5. Calcula el logaritomo en base 2 Calcula el logaritmo en base e. .Matrices y vectores que contengan “NaN” NAN significa “Not-a-Number” y es una representación aritmética que se utiliza para simbolizar resultados no definidos. Entrega el residuo después de una división.3 Funciones trigonométricas FUNCIONES TRIGONOMETRICAS Y Y Y Y Y Y Y Y Y Y = = = = = = = = = = sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) atan2(x) sinh(x) cosh(x) tanh(x) Calcula Calcula Calcula Calcula Calcula Calcula Calcula Calcula Calcula Calcula el el la el el el el el el la seno de x coseno de x tangente de x arco seno de x arco coseno de x arco tangente de x. Esteban Iturra s/n .y) Calcula el valor absoluto de x Calcula el angulo de fase de un vector complejo de x Calcula la raiz cuadrada de x Exponencial de x Calcula el logaritmo en base 10. ej_51 = 0/0 Warning: Divide by zero. entre –pi/2 y pi/2 arco tangente de x. entre –pi y pi. seno hiperbólico de x coseno hiperbólico de x tangente hiperbólica de x FUNCIONES MATEMATICAS ELEMENTALES Y Y Y Y Y Y Y Y Y = = = = = = = = = abs(x) angle(x) sqrt(x) exp(x) log10(x) log2(x) log(x) conj(x) rem(x.Casilla 160-C – Teléfono 204136 – FAX 220104 Tabla 4. ej_51 = NaN Ejemplo A = [ 2 10 2 10 6 NaN 6 NaN 58 89 58 89 9 9 9 9 NaN NaN NaN NaN NaN 5 NaN 5 5 8 5 8 8 9 NaN 9 9 4 9 4 4 NaN 4 NaN Análisis de datos Geofísicos (513421) NaN 25 NaN 25 25 NaN 25 NaN 36 88 25 30].. Calcula el conjugado de un vector complejo.

% Forma 1 de eliminar datos nan. posiciones = [I J] posiciones = 2 4 1 2 3 4 1 3 3 2 4 1 3 2 4 2 2 5 5 5 5 6 6 8 10 10 11 11 12 12 [I. % -----------------------------vec = vec(find(~isnan(vec))) Análisis de datos Geofísicos (513421) . Por ejemplo. Esteban Iturra s/n . J] = find( isnan(A) ). Los ceros indican que en esa posición existe un numero.2) se encuentra un dato nan. vec = vec(I). % Forma 2 de eliminar datos nan.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda. entrega las posiciones ( fila y columna ) de los datos nan en la matriz. entrega valores de ceros y unos. Los unos indican que en esas posiciones existen datos nan. Una forma de extraer los nan. en la posición (2. es a través de la función isnan: val_nan = isnan(A) val_nan = 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 0 isnan(A). siempre y cuando sea un vector es de la siguiente forma: vector = vector(find(~isnan(vec))) Ejemplo: Eliminación de los NAN vec = [ 2 5 7 nan nan 2 5 4 nan 25 48 nan 3 4 10]. % -----------------------------I = find(isnan(vec)==0). [I.Casilla 160-C – Teléfono 204136 – FAX 220104 Una forma de verificar si una matriz o vector contiene datos nan.J] = find(isnan(A)).

1988 0.Despliegue de datos con formatos Se pueden desplegar en pantalla mensajes o números con un determinado formato utilizando las funciones disp.4f %6.4860 0.4186 fprintf : Imprime texto.2028 0.yb.1: Usando la matriz M del ejemplo de la sección 4 disp(' disp(' disp(' disp(' disp(M) Salida en pantalla de la matriz M') --------------------------------------------------------') Col1 Col2 Col3 Col4 Col5 Col6') --------------------------------------------------------') Salida en pantalla de la matriz M -------------------------------------------------------Col1 Col2 Col3 Col4 Col5 Col6 -------------------------------------------------------0.4f\n'.4f %6.M') -----------------------------------------------\n') Análisis de datos Geofísicos (513421) . fprintf.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda. datos con formato.0153 0. texto. vector o matriz) Ejemplo 6.4447 0.2311 0.1987 0. Esteban Iturra s/n .4f %6.3529 0.9218 0.1763 0. Uso: fprintf(formato. La impresión de texto se coloca entre apóstrofes..8132 0.7382 0.6068 0.2: fprintf(' fprintf(' fprintf(' fprintf(' fprintf(' fprintf(' Salida en pantalla de la matriz M\n') -----------------------------------------------\n') Col1 Col2 Col3 Col4 Col5 Col6 \n') -----------------------------------------------\n') %6. yb = vec(db).8913 0. Ejemplo 6.0579 0.'linear'). Uso: disp(texto. y1 = interp1(db. vector o matriz).0099 0.9169 0.6154 0.2722 0.7621 0.4565 0.4f %6.4f %6.9355 0. disp: imprime texto y datos sin formato.6038 0.Casilla 160-C – Teléfono 204136 – FAX 220104 Ejemplo: Interpolación de los NAN dm = find(isnan(vec) == 1). db = find(isnan(vec) == 0).1389 0.7919 0.9501 0.8936 0.4660 0.0185 0.4103 0.8214 0.dm. vec(dm) = y1 Esto debe ir en otra sección % % % % posiciones de los datos malos posiciones de los datos buenos corresponden a los datos buenos corresponden a los datos interpolados % datos interpolados ingresados a la vector original 6.9318 0.4057 0.4451 0. Además almacena datos en un archivo.7468 0.

2028 0. fprintf([string formato operador ].7919 0. valor 2. El operador \n significa que se imprimirá una línea tras otra.M(4.7621 0.1389 0. valor 3 es ='. cuatro son para los decimales y uno para la parte entera.4186 Análisis de datos Geofísicos (513421) .1988 0.:).6068 0.0099 0.8132 0.9501 0.1389 0.3529 0.0185 0.3: fprintf(' fprintf(' fprintf(' fprintf(' El valor de pi es = %9.7382 0.9355 0.24556 1256 5.7468 0.2311 0.:)) 0.9169 0. %4d.4103 0.4: string = ' valor 1.4660 0.4660 0. %3.8214 0.6038 0.:). 1256.4451 0.0579 0.M(6.0185 0.2028 0.4103 0.:).4186 ----------------------------------------------- Nota: El formato %6.7468 0.36e-005 nota: si se antepone fprintf('\n') imprimirá una línea en blanco.4860 0.2722 0.3529 0.1987 0.4f %6.4f.36e-5].8936 0.1987 0.8913 0.:).8936 0. M(1.2311 0.:).1988 0.9318 0. Esteban Iturra s/n .9218 0.2722 0.0099 0.3f.4057 0.n)e = = = = salida salida salida salida de números enteros de cadena de caracteres (string) con punto flotante.6154 0.5: fprintf(' %6.M(3.9501 0.4f %6.1763 0.4447 0.n)f %(m.9318 0.4f %6.7f \n'.vector(1).M(2. operador = '\n'.9218 0.'caracteres') El valor de pi es = 3.6038 0.4860 0.8132 0.4f %6.6154 0.Casilla 160-C – Teléfono 204136 – FAX 220104 Salida en pantalla de la matriz M ----------------------------------------------Col1 Col2 Col3 Col4 Col5 Col6 ----------------------------------------------0.pi) El valor de pi es = %9.vector(3)) valor 1.0579 0. Existe 4 formatos principales: %(n)d %(n)s %(m.7919 0.0153 0. 5.4f\n'.9355 0. si se omite este operador se imprimirá el resultado en una sola línea. significa que de los 6 espacios que esta ocupando la variable.4057 0.0153 0.1415927e+000 La parte entera de pi es = 3 Salida en pantalla de caracteres = caracteres Ejemplo 6. valor 3 es = 7.fix(pi)) Salida en pantalla de caracteres = %s \n'.4451 0.4565 0. valor 2.7621 0.246.vector(2).7382 0. .4565 0.8913 0..4f %6.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.pi) La parte entera de pi es = %d \n'. exponencial.4447 0..1763 0.2e '.6068 0.8214 0.9169 0.7e \n'. Ejemplo 6. Ejemplo 6.M(5. vector = [7. formato = ' %5.1415927 El valor de pi es = 3.

\nombre.454 34.4410 34..222]'... Temp = = = = = 17.85 11. Esteban Iturra s/n .. donde nombre = nombre del archivo . Nota 1: El archivo de datos a leer..56]'.dat dat = load('d:\ocefisica\datos\est_valparaíso. load d:\carpeta1\carpeta2\.2220 (psu) (psu) (psu) (psu) (psu) 7.3f (ºC).dat..230 34. (ºC). extensión = la extención que tenga el archivo (.Leer y guardar datos La función load y save permiten leer y guardar datos.6: P = [1 5 10 15 30]'. además la matriz debe ser consistente.. Salt Salt Salt Salt Salt = = = = = 34. Ejemplo 7... es decir..dat dat = load('estacion25.180 15.) La segunda opción el nombre se coloca entre apóstrofes.4f (psu)\n'..extensión nombre_variable = load(nombre.extension') Ejemplo 7. Temp = %5.extension') dat = load('d:\carpeta1\carpeta2\.ctd') Pres Pres Pres Pres Pres = 1 (db). y los datos los asigna a la variable nombre_variable.4540 34.03 12. Temp = 10 (db).dat') Análisis de datos Geofísicos (513421) .. Si los datos están en otro directorio..18 15. (ºC).. Salt = %6.441 34. no debe contener comentarios sin el signo “%”. S = [34.560 (ºC).1: load estacion25. (ºC). dat = load('c:\carpeta1\carpeta2\.030 12...23 16.. Temp = 30 (db).\nombre.230 16.extension.353 34.. . T = [17. no puede faltar ningún dato en una fila o columna.. fprintf(' Pres = %2d (db). etc..Casilla 160-C – Teléfono 204136 – FAX 220104 Ejemplo 6.\nombre.extension. (ºC).2: load d:\ocefisica\datos\est_valparaíso.. Temp = 15 (db)....850 11. entonces su estructura es: load c:\carpeta1\carpeta2\.. respectivamente.extension)..3530 34..txt.. Temp = 5 (db).Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda. ctd = [P T S].\nombre.2300 34..dat') El ejemplo anterior se ocupa cuando los datos están en el directorio de trabajo. Para leer los datos su estructura es: load nombre.

var_2 = sin(2*pi/425 * index) + 3*sin(2*pi/425 * index).230 34.3f %6. var_1 = rand(5). donde fid es un identificador del fichero la opción 'w' significa 'write' formato (ver sección 6) fclose(fid).'var_1'. La segunda opción.4410 34.extension.560 34.180 15.85 11.txt 1 5 10 15 30 17.mat'.'var_2'. para guardar datos su estructura es: save nombre variable1 variable2 … variable(n) save nombre.ctd').'variable 1'. fprintf( fid. fclose(fid). S = [34. los datos se guardan en formato binario. fprintf(fid.3530 34.txt'. fid = fopen(nombre_archivo. nombre = 'ejemplo_save.' %2d %5. Nota: No es aconsejable almacenar más de una variable en formato ASCII. T = [17. ctd = [P T S].4540 34. los datos se guardan en formato ASCII con 8 dígitos. genera el archivo de datos con el nombre datos_ctd. cierra el fichero.441 34. ' Formato \n'.454 34.'-ascii') Análisis de datos Geofísicos (513421) .'variable 2') save('nombre.2300 34. Ejemplo 7.353 34.4: index = [1:10]'.extension'.extension variables -ascii -double save('nombre'.3: P = [1 5 10 15 30]'.18 15.'-ASCII') La primera opción. matriz.2220 Ejemplo 7. fclose(fid). save(nombre. los datos se guardan en formato ASCII con 16 dígitos. Esteban Iturra s/n .23 16.'variable 1'.230 16. La tercera opción.03 12. vector o texto).4f\n'.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.030 12. También se pueden almacenar datos usando la función fprintf. fid = fopen('datos_ctd.56]'.'var_2') save(nombre.'w'). 'w').extension variables -ascii save nombre.'variable 2'.Casilla 160-C – Teléfono 204136 – FAX 220104 Por otro lado.222]'.850 11.

0591 0.5667 0.2343 0.1016 0.1998 0.mat').0466 0.1171 0. save ejemplo_save.var_1 dat_2 = var.5979 0.mat var_1 var_2 save ejemplo_save.dat var_2 -ascii Ejemplo 7.8234 0. var_1 = rand(5).1183 0.7699 0.3193 0.2888 0. % ------------------------------------------------var = load('ejemplo_save.5307 0.2364 0.0653 0.Casilla 160-C – Teléfono 204136 – FAX 220104 Ejemplo 7.8888 0.3722 0.5892 Análisis de datos Geofísicos (513421) .9492 0.0737 0.9331 0.4132 0.1219 0.8678 0.0495 0.var_2 dat_1 = 0.6: Para leer los datos en archivo binario. var_2 = sin(2*pi/425 * index) + 3*sin(2*pi/425 * index).3544 0.0631 0.4720 0. nombre = 'ejemplo_save.2954 0.1773 0.3749 0.3751 0.2642 dat_2 = 0.5: index = [1:10]'. Esteban Iturra s/n . var var = var_1: [5x5 double] var_2: [10x1 double] para recuperar las variables almacenadas: dat_1 = var.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda. % lee los datos y los almacena en una estructura.mat'.5221 0. se puede hacer de dos formas: load ejemplo_save.mat whos Name var_1 var_2 Size 5x5 10x1 Bytes Class 200 80 double array double array Grand total is 35 elements using 280 bytes dat_1 = var_1 dat_2 = var_2 % Cambia el nombre de la variable.

8 Lectura de datos ascii con formato en lenguaje estructurado file = 'g:\sam\TXT\cursos\ADG_513421\clase_01\ctd_test_01.'%g'.'rt').2)=[sscanf(str(50:50+4). break.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.7 Lectura de datos ASCII con formato fid = fopen(nm_file.12)]'. % Apertura del archivo % Lee los datos hasta el fin del archivo i1=0. while fid str = fgetl(fid).1)]. % extrae la información aa(1.1)]. Esteban Iturra s/n . % Apertura del archivo str = fgetl(fid). %lee la línea completa n = length(str).'%g'. cierra el archivo % Ejemplo 7. a = [sscanf(str(17:n).1) =[sscanf(str(45:45+4). P(i1. end fclose(fid).Casilla 160-C – Teléfono 204136 – FAX 220104 % Ejemplo 7.:) =[str2num(str)]. Análisis de datos Geofísicos (513421) . fid = fopen(file. end %termina cuando llega al fin de archivo i1 = i1+1.cnv'. %Lee una línea completa aa(1.'%g'. % extrae la información str = fgetl(fid). %lee la linea completa if ~isstr(str). % extrae la información fclose(fid).'rt').

Operador Nombre < > <= >= ~= & | ~ = = Menor que Mayor que Menor o igual que Mayor o igual que Distinto que Y O Negación lógica Igual que Sentencia if: La sentencia if : se usa para que se ejecute una determinada condición.Casilla 160-C – Teléfono 204136 – FAX 220104 8.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.1. Programación estructurada Tabla 8. Esteban Iturra s/n . if condición bloque end si existe más de una bifurcación o bucle. entonces: if condición1 bloque 1 elseif condición 2 bloque 2 elseif condición 3 bloque 3 else bloque 4 end Sentencia for: repite un conjunto de veces un determinado bloque. for i=1:n Bloque end for k = 1: n for j = 1: m bloque end end for i=1:n if condicion 1 bloque 1 elseif condicion 2 bloque 2 else bloque 3 end end Análisis de datos Geofísicos (513421) .

indice = [1:n]'..*cos(pi*x/180) + 0. fprintf(' Indice Suma Acumulativa \n') fprintf(' %2d %2d \n'. suma = 0. [indice suma_acumulativa']') Ejemplo 8.1: x = [1 2 4 8 9 6 2]. n = length(x).. x = [1 2 4 8 9 6 2 1 2 3 1 5 4 4 8 2 5 61 2 0 32 6 0.. Esteban Iturra s/n .2. suma) end resultado: Indice Suma Acumulativa 1 1 2 3 3 7 4 15 5 24 6 30 % El mismo programa escrito de otra forma. Switch case case valor 1 bloque 1 case valor 2 bloque 2 .Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda. i.. Análisis de datos Geofísicos (513421) .3 0. fprintf(' Indice Suma Acumulativa \n') for i=1:n suma = suma + x(i). % ---------------------------------------suma_acumulativa = cumsum(x). y = x.Casilla 160-C – Teléfono 204136 – FAX 220104 Sentencia while: repite un conjunto de veces una determinada condición.1 14 10] . n = length(x).95 0.... case valor N bloque N-1 otherwise bloque N end Ejemplo 8. fprintf(' %2d %2d \n'. while expression statements end Sentencia switch: Ejecuta diferentes bloques dependiendo de la condición. desviacion = std(y)....45253..

fprintf(' fprintf(' fprintf(' fprintf(' fprintf(' -----------------------------------.\n') Valores Desviacion estandar \n') -----------------------------------. n_desv_2 = 0. switch valor Análisis de datos Geofísicos (513421) .32841 2 2-std.65682 2 3-std. vec_1std = [vec_1std. ind = [1:3]. [valores' -----------------------------------.Casilla 160-C – Teléfono 204136 – FAX 220104 n_desv_1 = 0. desv = [desviacion. end if y(i) > 3*desviacion n_desv_3 = n_desv_3 + 1.\n') ind' desv']') Ejemplo 8. n_desv_2 . y(I1std) = nan. end end y(vec_1std(:. n_desv_3]. for i = 1:n if y(i) > desviacion n_desv_1 = n_desv_1 + 1. length(I2std) . desv = [desviacion.95 0. 3*desviacion].\n') ind' desv']') resultado: -------------------------------------Valores Desviacion estandar -------------------------------------7 1-std.5f \n'. length(I3std)]. vec_3std = []. 2*desviacion .\n') %2d %d-std. 3*desviacion]. valor = 2. i y(i)] .3 0. vec_2std = [vec_2std. fprintf(' fprintf(' fprintf(' fprintf(' fprintf(' -----------------------------------. Esteban Iturra s/n . end if y(i) > 2*desviacion n_desv_2 = n_desv_2 + 1. valor = %8. I2std = find( y > 2*desviacion). i y(i)] .1)) = nan. I3std = find( y > 3*desviacion). valor = 7. valor = 21. [valores' -----------------------------------.3: x = [1 2 4 8 9 6 2 1 2 3 1 5 4 4 8 2 5 61 2 0 32 6 0. valores = [n_desv_1. i y(i)] . n_desv_3 = 0. vec_3std = [vec_3std.\n') %2d %d-std.1 14 10] . 2*desviacion .Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.98523 -------------------------------------El mismo programa escrito de otra forma: I1std = find( y > desviacion).\n') Valores Desviacion estandar \n') -----------------------------------. vec_1std = [].5f \n'. vec_2std = []. valores = [length(I1std). valor = 14. valor = %8. ind = [1:3].

= [min(y) max(y) mean(x) std(x)] . m = s / i. a = a + i.9037 [ 8.8375 [42.7212 [26. while i < fix(n/2) i = i + 1.2121 51.2126] 5.95 0.Casilla 160-C – Teléfono 204136 – FAX 220104 case 1 matriz case 2 matriz case 3 matriz otherwise disp(' return end = [min(y) max(y) mean(x) std(x)]. s = s + y(i).2815 156.5483] 4. str = 'la suma y la media acumulativa a'.4770 Ejemplo 8.4: x = [1 2 4 8 9 6 2 1 2 3 1 5 4 4 8 2 5 61 2 0 32 6 0.3 0.1718 [53.4524 [ 3.2 o 3') resultado: matriz = 0.4524] 1. Esteban Iturra s/n .1242] 9. Estructura: function function function [valores de retorno] = nombre_funcion ( valores de entrada ) nombre_funcion ( valores de entrada ) nombre_funcion Análisis de datos Geofísicos (513421) .7383 [49.1 14 10].7822] 4.[i s m]) end resultado: la la la la la la la la la la la la la suma suma suma suma suma suma suma suma suma suma suma suma suma y y y y y y y y y y y y y la la la la la la la la la la la la la media media media media media media media media media media media media media acumulativa acumulativa acumulativa acumulativa acumulativa acumulativa acumulativa acumulativa acumulativa acumulativa acumulativa acumulativa acumulativa a a a a a a a a a a a a a i i i i i i i i i i i i i = = = = = = = = = = = = = 1 2 3 4 5 6 7 8 9 10 11 12 13 es es es es es es es es es es es es es = = = = = = = = = = = = = [ 1.3862 [38.^2 . fprintf([ str ' i = %2d es = [%7.4f] \n'].4825 [34. m = 0.2286] 3.2048 41.2860 [43. y = x.9338 [36.*cos(pi*x/180) + 0.3153] 4. a = 0.4138] 4.1803] 5.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.3465 [16.0977] 4.6146 1. El valor no es 1 . n = length(x).9518] 2.. i = 0.9762] 4.0629 [32.9905] 4. s = 0.Funciones de usuario. = [cumsum(x)].4f %7.45253.

'Ago'.1 function str = caracteres(mes..'A'.Casilla 160-C – Teléfono 204136 – FAX 220104 Los valores tanto de entrada como de retorno deben estar separados por comas.'Abr'.'J'.'D']. .'Fre'. La función se almacena con extensión (.m). end Análisis de datos Geofísicos (513421) . str = meses(mes).'A'.'Mar'. Ejemplo 9... elseif opt == 'completo' meses = ['Ene'. str = meses(mes.'N'.'M'.'Sep'.'Dic'].'S'.'Oct'.….'May'.xn) % comentarios nargin % opcional Sentencias Return Uso del nargin: El nargin es útil cuando se trabaja con valores opcionales.'M'. Estructura de una función function [v1.'Jun'..'J'.:).'Jul'.. Esteban Iturra s/n .'F'.opt) % Toma la opcion por defecto % --------------------------if nargin == 1 opt = 'reducido' end if opt == 'reducido' meses = ['E'.'O'.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.vn] = nombre_funcion (x1.'Nov'.

7056 r = 0. v) % % % % % % % % % ---------------------------------------------------------calcula la media. clc x = [1 2 4 8 9 6 2 1 2 3 1 5 4 4 8 2 5 61 2 0 32 6 0.9450 Análisis de datos Geofísicos (513421) . r = coeficiente de correlacion lineal.2: function [media.1611 6. stdv = covar(4). return Uso de la function: clear all. desv = [desv_std_u desv_std_u]. r] = estadistica_basica(u.4770 53. % Mes de Junio opt = 'completo'. ---------------------------------------------------------- u = u(:). y = x. desviación estandar y el coeficiente de correlacion para los vectores u y v. desv.opcion) Ejemplo 9.Casilla 160-C – Teléfono 204136 – FAX 220104 Uso de la funcion: clear all.3 0. r = covm/sqrt(stdu*stdv).1 14 10]. v) media = 7. media = mean(mat). media = [media_u media_v]. v = v(:). stdu = covar(1). desv = [stdu stdv]. desv. r] = estadistica_basica(u. Esteban Iturra s/n .2334 desv = 156.*cos(pi*x/180) + 0. Se asume que los vectores no tienen datos NAN. covm = covar(3). valor_mes = caracteres(numero_mes. mat = [u v]. [media.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.45253.95 0. covar = cov(mat). clc numero_mes = 6.

. Su h = plot(x..Gráficos Función Descripción plot bar hist feather loglog semilogx semilogy polar contour stem Grafico Grafico Grafica Grafica Grafica Grafica Grafica Grafica Grafica grafica en dos dimensiones de barras histogramas diagrama de vectores con escalas logarítmicas en ambos ejes en escala logarítmica en el eje x en escala logarítmica en el eje y en coordenadas polares. tamaño de la linea. etc.'valor(n)') donde x e y son las variables en los ejes X e Y.'b') 10. datos discretos Uso del PLOT: la función es la siguiente estructura: plot sirve para graficar figuras en escala lineal en ambos ejes.3: function grafica(y) % ----------------------------------------------% Grafica el vector y. tipo de línea...'propiedad(n)'.y1.y) h = plot(x1..Casilla 160-C – Teléfono 204136 – FAX 220104 Ejemplo 9. Las líneas y marcas pueden ser: Continua = Guiones = Punteada = Estrellas = Cruz = Guiones y puntos = -: * x -.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.xn. Los colores pueden ser : b = azul r = rojo k = negro g = verde Análisis de datos Geofísicos (513421) .. utilizando una linea azul % ----------------------------------------------plot(y.valor1. marca o su color. Esteban Iturra s/n ..'propiedad1'.y. contornos o isolineas.ym) h = plot(x. La propiedad puede ser.. tipo de marca.

Total de figuras es m x n Ejemplo 10.n propiedad = 'markersize'.valor(n)) figure numero_figura subplot : Permite graficar varias figuras en una ventana. xt = sin(pi/20*t)+ 2*cos(2*pi/5*t) + 2*rand(1.1: subplot 331.index) h = sunplo(m_n_index) subplot m_n_index donde m = filas n = columans index = numero correlativo del gráfico.n. es el tamaño de la marca..Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.valor.t(end)).xt. h = subplot(m. 'propiedad(n).2 – Figura 1.'k') subplot 222 plot(t. subplot 221 plot(t. significa 9 figuras agrupadas en 3 filas y 3 columnas Ejemplo 10. A mayor valor de n.xt. A mayor valor de n. mayor es el ancho de la línea..xt.'.Casilla 160-C – Teléfono 204136 – FAX 220104 m = magenta y = amarillo c = turquesa..15) Análisis de datos Geofísicos (513421) .n linewidth.'markersize'. H = figure(valor) H = figure('propiedad'. t = 1:200. mayor es el tamaño de la marca. es la ancho de la línea y n es su valor.'linewidth'.'.xt. w = blanco propiedad = 'linewidth'. Nota. Esteban Iturra s/n . .'x') subplot 224 plot(t.'-r'.3) subplot 223 plot(t. Para más información del estilo de las marcas use el help plot Markersize figure : Abre una ventana donde graficaran las figuras.

n)..n. h = ylabel('texto'.'texto'.'texto' . h = title('texto'. h = text(x. % agrega texto en el eje x. axis([ x_lim_inf x_lim_sup y_lim_inf y_lim_sup ]) axis square axis equal Análisis de datos Geofísicos (513421) . Esteban Iturra s/n .y.y.'fontsize'.Casilla 160-C – Teléfono 204136 – FAX 220104 Al gráfico trazado se puede agregar rótulos en el eje x como en el eje y.'texto'). 'texto'.'indicar color'). axis : Mofica los limites del gráfico.'Color'.'fontsize'. Esto se hace de la siguiente forma: h = xlabel('texto'. h = legend('texto 1'. % agrega texto en el eje y.. donde fontsize regula el tamaño del texto indicado por el número n. donde x e y son las posiciones en el eje-x y en el eje-y donde se colocará el texto. 'texto n')... n).'fontsize'. n). % agrega un titulo el handle (h) es opcional si no se va a modificar el rotulo.'fontsize'.. y titulo. Además en el gráfico se pueden colocar tanto texto como una leyenda.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda. Esto se hace: h = text(x..

13) text(10.'fontsize'.xt.'fontsize'.15) xlabel('eje-x'.3) title('Figura del subplot 222'.5.'fontsize'.2 subplot 221 plot(t.'fontsize'.3 – usando los datos del ejemplo 10.13) text(10.5.'linewidth'.13) subplot 223 plot(t. 'fontsize'.xt.Casilla 160-C – Teléfono 204136 – FAX 220104 Ejemplo 10.13) ylabel('eje-y'.'-r'. ' b )'.'fontsize'. ' d )'.xt.'fontsize'.'fontsize'.13) subplot 224 plot(t.13) title('Figura del subplot 224'.'fontsize'. 'fontsize'.13) subplot 222 plot(t. 'fontsize'.'x') xlabel('eje-x'.13) title('Figura del subplot 221'.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.'k') ylabel('eje-y'.13) text(10.'. Esteban Iturra s/n .13) text(10.xt.13) Análisis de datos Geofísicos (513421) .'.5.'markersize'. ' c )'. 'fontsize'.5. ' a )'.13) title('Figura del subplot 223'.

'tickdir'. 'xminortick'. 'b'. 'tickdir'... figure('color'..'on'. [vector de valores].... 'w'.'top'. 'xgrid'..[-3:1:5].xt) set(gca. 'ytick'. get: Obtiene los valores asociado a cada propiedad. 'ytick'.... 'off' : desactiva la propiedad.. 'xgrid'.[1 30:30:240]. 'xtick'.... 'propiedad1 '.. 'w'....[-3 5].'xlim'.[-3:1:5]..'on'..'out'. ['k'. 'fontsize'.Casilla 160-C – Teléfono 204136 – FAX 220104 set : Permite cambiar las propiedades a los objetos (del gráfico).. 'fontsize'.. 'fontsize'. 'yticklabel'........ 'b'..'off') Análisis de datos Geofísicos (513421) .. 'propiedad(n) '. 'yminortick'.Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda. ['on' ó 'off'].. 'xtick'. 'xAxisLocation'... 'position'... 'propiedad1 '... [ ejemplo 9]. 'xcolor'..[-3 5]. valor1. 'xcolor'.. [lim_inferior lim_superior].009 0. valor(n)) los más utilizados son: set(gca... 'ygrid'... .xt) set(gca...025].[0......... 'xtick'.. 'yAxisLocation'.'xlim'.'w') subplot 311 plot(t.'right'... 'tickdir'... 'ycolor'..... set(gca. 'xticklabel'... .. ['k'..... [vector de caracteres]. etc]. 'ticklength'. [lim_inferior lim_superior]... 'ticklength'.... ['top' ó 'bottom'].. 'xAxisLocation'. 'ylim' .4 – Modificando las propiedades del grafico. 'ylim'. etc]...'r') subplot 313 plot(t.'box'.[1 30:30:240].. 'ygrid'..... 'xlim' . altura]. 'propiedad(n) '.. 'box'. ['in' ó 'out'].. base.. 'ylim'.. ['left' ó 'right']... ['on' ó 'off']. Esteban Iturra s/n .. [valor1 valor2].[1 240].. ['on' ó 'off') 'on' : activa la propiedad. valor(n)) set(handle.'out'. ...[1 240].. ['on' ó 'off']. valor = get(handle.. 'ycolor'. 'yAxisLocation'....8. 'ytick'. [vector de caracteres en columna].... [borde. valor1. 'propiedad') Ejemplo 10. ['on' ó 'off']. [vector de valores]... . ancho.......'b'.8.

Casilla 160-C – Teléfono 204136 – FAX 220104 Análisis de datos Geofísicos (513421) . Esteban Iturra s/n .Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.

Binomial parameter estimation expfit . graph3d.Uniform parameter estimation weibfit . ranksum signrank signtest ztest ttest ttest2 - Wilcoxon rank sum test (independent samples) Wilcoxon sign rank test (paired samples) Sign test (paired samples) Z test One sample t test Two sample t test Distribution Testing jbtest .Maximum likelihood estimation (MLE) normfit .Rayleigh parameter estimation unifit . specgraph.Lilliefors test of normality Análisis de datos Geofísicos (513421) . mapproj simulink help stats Statistics Toolbox Distributions Parameter estimation betafit . sparfun graph2d . elmat .Chi square density Hypothesis Tests. graphics polyfun splines funfun general strfun iofun map.Poisson parameter estimation raylfit . Esteban Iturra s/n .Gamma parameter estimation mle .Kolmogorov-Smirnov test for one sample kstest2 .Weibull parameter estimation Probability density functions (pdf) betapdf .Beta parameter estimation binofit .Normal parameter estimation poissfit .Binomial density chi2pdf .Beta density binopdf .Jarque-Bera test of normality kstest .Exponential parameter estimation gamfit .Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Geofísica Avda.Casilla 160-C – Teléfono 204136 – FAX 220104 ANEXO: Toolbox útiles Análisis de datos y transformada de Fourier Análisis estadístico Análisis de señales Análisis de wavelet Funciones especiales Funciones matriciales Gráficos : : : : : : : Interpolación y polinomios Interpolación spline Integrales y ecuaciones diferenciales Información general Manejo de string Manejo de archivos Mapas Modelos : : : : : : : : datafun stats signal wavelet specfun matfun.Kolmogorov-Smirnov test for two samples lillietest .