capitulo6 estructuras
TRANSCRIPT
-
8/16/2019 Capitulo6 estructuras
1/29
“Estructuras de
Datos y Manejode Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
“Estructuras de Datos y Manejo de Información”
Carlos Valle [email protected]
Departamento de Informática -
Universidad Técnica Federico Santa Marı́a
Rancagua, Agosto 2009
1 / 2 9
http://find/http://goback/
-
8/16/2019 Capitulo6 estructuras
2/29
“Estructuras de
Datos y Manejode Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Temario
1 Introducción
2 Estructuras
3 Arreglos de Celdas
2 / 2 9
http://find/http://goback/
-
8/16/2019 Capitulo6 estructuras
3/29
“Estructuras de
Datos y Manejode Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Temario
1 Introducción
2 Estructuras
3 Arreglos de Celdas
3 / 2 9
http://find/
-
8/16/2019 Capitulo6 estructuras
4/29
“Estructuras de
Datos y Manejode Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Introducción
El objetivo de la informática es transformar datos eninformación.
Los datos se transforman en información cuando se
estructuran 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 / 2 9
http://find/
-
8/16/2019 Capitulo6 estructuras
5/29
“Estructuras de
Datos y Manejode Información”
Carlos Valle
Vidal
Introducción
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 de
MATLAB cuyos elementos consisten en celdas que a su vez
contienen arreglos de MATLAB
Tanto las estructuras como los arreglos de celdas proveen
mecanismos de almacenamiento jerárquico para contener
distintos tipos de datos.
5 / 2 9
http://find/
-
8/16/2019 Capitulo6 estructuras
6/29
“Estructuras de
Datos y Manejode Información”
Carlos Valle
Vidal
Introducción
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: 276 / 2 9
http://goforward/http://find/http://goback/
-
8/16/2019 Capitulo6 estructuras
7/29
“Estructuras de
Datos y Manejode Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Ejemplo: Arreglo de celda
Arreglo numéricoA =
-3 4 -10
1 13 7
0 9 8
Arreglo de Celdas
A =
[-3] [ 4] [-10]
[ 1] [13] [ 7]
[ 0] [ 9] [ 8]
7 / 2 9
http://find/
-
8/16/2019 Capitulo6 estructuras
8/29
“Estructuras de
Datos y Manejode Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Funciones aplicables a estructuras
fieldnames Obtiene nombres de campos
getfield Obtiene contenido de campos
isfield Verdad si un campo está en estructura
isstruct Verdad si es estructura
rmfield Remueve campo de estructurasetfield Fija contenido de campo de estructura
struct Crea o convierte a arreglo de estructura
struct2cell Convierte estructura en celda
8 / 2 9
http://find/
-
8/16/2019 Capitulo6 estructuras
9/29
“Estructuras de
Datos y Manejode Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Funciones aplicables a arreglos de celdas
cell Crea arreglo de celdas
cell2struct Convierte celdas en arreglos
celldisp Muestra contenido de celdas
cellfun Aplica una función de celda a celda
cellplot Muestra gráficamente arreglos de celdasdeal Une entradas con salidas
iscell Verdad si es Arreglo de celdas
num2cell Convierte arreglo numérico en celdas
9 / 2 9
http://find/
-
8/16/2019 Capitulo6 estructuras
10/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Temario
1 Introducción
2 Estructuras
3
Arreglos de Celdas
10/29
http://find/
-
8/16/2019 Capitulo6 estructuras
11/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Estructuras
Las estructuras son arreglos de MATLAB que tienen“contenedores de datos” llamados campos.
Los campos de una estructura pueden contener cualquier
tipo de datos.
Las estructuras son las componentes básicas de las
llamadas “base de datos”.
11/29
http://find/
-
8/16/2019 Capitulo6 estructuras
12/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Construcción de Estructuras
¿Cómo construir estructuras?Mediante asignaciones
Usando la función struct
Usando asignación:
>>paciente.nombre=’Laura Carmona’>>paciente.edad= 28
>>paciente.isapre=’La Muerte’
>>paciente.presion=[13 8]
paciente =
nombre: ’Laura Carmona’
edad: 28
isapre: ’La Muerte’
presion: [13 8]
12/29
http://find/
-
8/16/2019 Capitulo6 estructuras
13/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Construcción de Estructuras (2)
Si se quiere insertar un nuevo paciente a nuestra base dedatos:
paciente(2).nombre=’Juan Escobar’
paciente(2).edad= 35
paciente(2).isapre=’La Vida’
paciente(2).presion=[16 9]
>> paciente(2)
ans =
nombre: ’Juan Escobar’
edad: 35
isapre: ’La Vida’
presion: [16 9]13/29
http://find/http://goback/
-
8/16/2019 Capitulo6 estructuras
14/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Observaciones
Con el ejemplo anterior se ha creado una estructura detamaño [1 2]
Todas las estructuras del arreglo tienen el mismo número de
campos.
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 demás campos quedanvacı́os
14/29
http://find/http://goback/
-
8/16/2019 Capitulo6 estructuras
15/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
La función fieldnames
La función fieldnames nos entrega un arreglo de celdas destrings con los nombres de campos.
>> fieldnames(paciente)
ans =
’nombre’’edad’
’isapre’
15/29
http://find/
-
8/16/2019 Capitulo6 estructuras
16/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Construcción usando struct
La forma básica es:inf=struct(’campo1’, val1, ’campo2’, val2, ..)
Usando struct existen 2 métodos para asignar campos.
Se explicará a través de un ejemplo: base de datos para
registrar la temperatura y presión de una ciudad.>> clima= struct(’temp’, 23, ’presion’, 760)
>> clima(2)= struct(’temp’, 20, ’presion’, 753)
A través de listas con valores:
weather= struct(’temp’, {23, 20}, ’presion’, {760, 753})
16/29
http://find/http://goback/
-
8/16/2019 Capitulo6 estructuras
17/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Construcción usando struct (2)
>> weather(1)
ans =
temp: 23
presion: 760
>> weather(2)
ans =
temp: 20
presion: 753
17/29
http://find/
-
8/16/2019 Capitulo6 estructuras
18/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Acceso a datos
El acceso a datos se hace mediante el operador punto (.).Ejemplo
>> paciente(2).edad
ans =
35
18/29
http://find/
-
8/16/2019 Capitulo6 estructuras
19/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
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
http://find/
-
8/16/2019 Capitulo6 estructuras
20/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
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
http://find/
-
8/16/2019 Capitulo6 estructuras
21/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Agregar y quitar campos (2)
Para eliminar campos se usa rmfieldPor ejemplo:
>> paciente=rmfield(paciente, ’rut’)
paciente =
nombre: ’Laura Carmona’
edad: 28
isapre: ’La Muerte’
21/29
http://find/
-
8/16/2019 Capitulo6 estructuras
22/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
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 cromo
r1=[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
http://find/
-
8/16/2019 Capitulo6 estructuras
23/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Funciones y Estructuras: Ejemplo (2)
plomo=[muestra.plomo];
mercurio=[muestra.mercurio];
cromo=[muestra.cromo];
plot(plomo, ’r’); hold on
plot(mercurio, ’b’)plot(cromo, ’y’); hold off
23/29
http://find/
-
8/16/2019 Capitulo6 estructuras
24/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Temario
1 Introducción
2 Estructuras
3 Arreglos de Celdas
24/29
A l d C ld
http://find/
-
8/16/2019 Capitulo6 estructuras
25/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
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 otros
arreglos de MATLAB
Por ejemplo, una celda puede contener un arreglo de
números reales, otra un arreglo de strings y otra un vector de
números complejos.
25/29
S l i´ 1
http://find/
-
8/16/2019 Capitulo6 estructuras
26/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos deCeldas
Solución 1
Un arreglo de celdas se puede crear a través de dos
mecanismos:
Asignación
Uso de funciones
26/29
C i ´ d A l d C ld i d d d ld
http://find/
-
8/16/2019 Capitulo6 estructuras
27/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos de
Celdas
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
Creación de Arreglos de Celdas: indexado de
http://find/
-
8/16/2019 Capitulo6 estructuras
28/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos de
Celdas
g
contenido
>> celldisp(A)
A{1,1} =
1 4
0 5
A{2,1} =
3.0000 + 7.0000i
A{1,2} =
Edgar Poe
A{2,2} =
3.1416
28/29
Consultas y Comentarios
http://find/
-
8/16/2019 Capitulo6 estructuras
29/29
“Estructuras de
Datos y Manejo
de Información”
Carlos Valle
Vidal
Introducción
Estructuras
Arreglos de
Celdas
Consultas y Comentarios
29/29
http://find/