29
“Estructuras de Datos y Manejo de Informaci ´ on” Carlos Valle Vidal Introducci ´ on Estructuras Arreglos de Celdas “Estructuras de Datos y Manejo de Informaci ´ on” Carlos Valle Vidal [email protected] Departamento de Inform ´ atica - Universidad T ´ ecnica Federico Santa Mar´ ıa Rancagua, Agosto 2009 1 / 29

``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

“Estructuras de Datos y Manejo de Informacion”

Carlos Valle [email protected]

Departamento de Informatica -Universidad Tecnica Federico Santa Marıa

Rancagua, Agosto 2009

1 / 29

Page 2: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Temario

1 Introduccion

2 Estructuras

3 Arreglos de Celdas

2 / 29

Page 3: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Temario

1 Introduccion

2 Estructuras

3 Arreglos de Celdas

3 / 29

Page 4: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Introduccion

El objetivo de la informatica es transformar datos eninformacion.

Los datos se transforman en informacion cuando seestructuran y organizan.

De esta forman cobran sentido y los utilizamos para la tomade decisiones.

Ejemplo:

’Juan Leiva’ 34 M ’Marıa Saravia’ 54 F

Nombre Edad Sexo’Juan Perez’ 31 ’M’

’Marıa Gonzalez’ 45 ’F’

4 / 29

Page 5: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Estructuras y Arreglos de Celdas

Estructuras son colecciones de diferentes tipos de datosorganizados por nombres de campos.

Arreglos de Celdas son una clase especial de arreglos deMATLAB cuyos elementos consisten en celdas que a su vezcontienen arreglos de MATLAB

Tanto las estructuras como los arreglos de celdas proveenmecanismos de almacenamiento jerarquico para contenerdistintos tipos de datos.

5 / 29

Page 6: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Ejemplo de Estructura

>> persona.nombre=’Luisa’persona =

nombre: ’Luisa’

>> persona.apellido=’Lane’persona =

nombre: ’Luisa’apellido: ’Lane’

>> persona.edad=27

persona =nombre: ’Luisa’

apellido: ’Lane’edad: 27

6 / 29

Page 7: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Ejemplo: Arreglo de celda

Arreglo numerico

A =

-3 4 -101 13 70 9 8

Arreglo de Celdas

A =

[-3] [ 4] [-10][ 1] [13] [ 7][ 0] [ 9] [ 8]

7 / 29

Page 8: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Funciones aplicables a estructuras

fieldnames Obtiene nombres de camposgetfield Obtiene contenido de camposisfield Verdad si un campo esta en estructura

isstruct Verdad si es estructurarmfield Remueve campo de estructurasetfield Fija contenido de campo de estructurastruct Crea o convierte a arreglo de estructura

struct2cell Convierte estructura en celda

8 / 29

Page 9: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Funciones aplicables a arreglos de celdas

cell Crea arreglo de celdascell2struct Convierte celdas en arreglos

celldisp Muestra contenido de celdascellfun Aplica una funcion de celda a celdacellplot Muestra graficamente arreglos de celdas

deal Une entradas con salidasiscell Verdad si es Arreglo de celdas

num2cell Convierte arreglo numerico en celdas

9 / 29

Page 10: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Temario

1 Introduccion

2 Estructuras

3 Arreglos de Celdas

10 / 29

Page 11: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Estructuras

Las estructuras son arreglos de MATLAB que tienen“contenedores de datos” llamados campos.

Los campos de una estructura pueden contener cualquiertipo de datos.

Las estructuras son las componentes basicas de lasllamadas “base de datos”.

11 / 29

Page 12: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Construccion de Estructuras

¿Como construir estructuras?

Mediante asignaciones

Usando la funcion struct

Usando asignacion:

>>paciente.nombre=’Laura Carmona’>>paciente.edad= 28>>paciente.isapre=’La Muerte’>>paciente.presion=[13 8]paciente =

nombre: ’Laura Carmona’edad: 28isapre: ’La Muerte’presion: [13 8]

12 / 29

Page 13: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Construccion de Estructuras (2)

Si se quiere insertar un nuevo paciente a nuestra base dedatos:paciente(2).nombre=’Juan Escobar’paciente(2).edad= 35paciente(2).isapre=’La Vida’paciente(2).presion=[16 9]

>> paciente(2)

ans =

nombre: ’Juan Escobar’edad: 35isapre: ’La Vida’presion: [16 9]

13 / 29

Page 14: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Observaciones

Con el ejemplo anterior se ha creado una estructura detamano [1 2]Todas las estructuras del arreglo tienen el mismo numero decampos.

Todos los campos tienen los mismos nombres.

Si se ingresa un nuevo nombre de paciente, por ejemplo:

paciente(3).nombre=’Teresa Ruiz’

Se expande el arreglo a [1 3] y los demas campos quedanvacıos

14 / 29

Page 15: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

La funcion fieldnames

La funcion fieldnames nos entrega un arreglo de celdas destrings con los nombres de campos.

>> fieldnames(paciente)ans =

’nombre’’edad’’isapre’

15 / 29

Page 16: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Construccion usando struct

La forma basica es:

inf=struct(’campo1’, val1, ’campo2’, val2, ..)

Usando struct existen 2 metodos para asignar campos.

Se explicara a traves de un ejemplo: base de datos pararegistrar la temperatura y presion de una ciudad.

>> clima= struct(’temp’, 23, ’presion’, 760)>> clima(2)= struct(’temp’, 20, ’presion’, 753)A traves de listas con valores:weather= struct(’temp’, {23, 20}, ’presion’, {760, 753})

16 / 29

Page 17: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Construccion usando struct (2)

>> weather(1)ans =

temp: 23presion: 760

>> weather(2)ans =

temp: 20presion: 753

17 / 29

Page 18: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Acceso a datos

El acceso a datos se hace mediante el operador punto (.).

Ejemplo

>> paciente(2).edadans =

35

18 / 29

Page 19: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Acceso a datos usando funciones

getfield obtiene valores de un campoEjemplo:>> f=getfield(paciente, {2}, ’nombre’ )f =Juan Escobar

Se puede extraer los valores de un campo como arreglo:>>A=[paciente.edad]

A=28 35

>> promedio_edad=mean(A)

Promedio_edad =

31.500019 / 29

Page 20: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Agregar y quitar campos

Agregando un campo a una estructura simple, se le agrega atoda la estructura.

Por ejemplo:

>> paciente(1).rut=’18.999.999-6’paciente =

nombre: ’Laura Carmona’edad: 28

isapre: ’La Muerte’rut: ’18.999.999-6’

20 / 29

Page 21: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Agregar y quitar campos (2)

Para eliminar campos se usa rmfield

Por ejemplo:

>> paciente=rmfield(paciente, ’rut’)paciente =

nombre: ’Laura Carmona’edad: 28

isapre: ’La Muerte’

21 / 29

Page 22: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Ejemplo

Resultado de experimento:

test(1).plomo=.007; test(2).plomo=0.031; test(3).plomo=.019;test(1).mercurio=.0021; test(2).mercurio=0.0009; test(3).mercurio=.0013;test(1).cromo=.0025; test(2).cromo=0.017; test(3).cromo=0.10;

function [r1, r2]= concentracion(muestra);%r1 contiene el cuociente entre mercurio y plomo de cada muestra.%r2 contiene el cuociente entre plomo y cromor1=[muestra.mercurio] ./ [muestra.plomo];r2=[muestra.plomo] ./ [muestra.cromo];%Grafico de concentraciones de plomo, mercurio y cromo sobre el mismo%grafico usando diferentes colores

22 / 29

Page 23: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Funciones y Estructuras: Ejemplo (2)

plomo=[muestra.plomo];mercurio=[muestra.mercurio];cromo=[muestra.cromo];plot(plomo, ’r’); hold onplot(mercurio, ’b’)plot(cromo, ’y’); hold off

23 / 29

Page 24: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Temario

1 Introduccion

2 Estructuras

3 Arreglos de Celdas

24 / 29

Page 25: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Arreglos de Celdas

Un arreglos de celdas es un arreglo de MATLAB en el cuallos elementos son celdas.

Las celdas son contenedores que pueden contener otrosarreglos de MATLAB

Por ejemplo, una celda puede contener un arreglo denumeros reales, otra un arreglo de strings y otra un vector denumeros complejos.

25 / 29

Page 26: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Solucion 1

Un arreglo de celdas se puede crear a traves de dosmecanismos:

AsignacionUso de funciones

26 / 29

Page 27: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Creacion de Arreglos de Celdas: indexado de celdas

A(1,1)={[1 4; 0 5]}A(1,2)={’Edgar Poe’}A(2,1)={3 + 7i}A(2,2)={pi}

27 / 29

Page 28: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Creacion de Arreglos de Celdas: indexado decontenido

>> celldisp(A)

A{1,1} =

1 40 5

A{2,1} =

3.0000 + 7.0000i

A{1,2} =

Edgar Poe

A{2,2} =

3.1416

28 / 29

Page 29: ``Estructuras de Datos y Manejo de Información''cvalle/CAplicada/Capitulo6.pdf · 2009-08-11 · “Estructuras de Datos y Manejo de Informaci´on” Carlos Valle Vidal Introducci´on

“Estructuras deDatos y Manejode Informacion”

Carlos ValleVidal

Introduccion

Estructuras

Arreglos deCeldas

Consultas y Comentarios

29 / 29