Anda di halaman 1dari 6

ESCUELA POLITCNICA NACIONAL

FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

SOFTWARE DE SIMULACIN
GR4

TRABAJO N 1
TEMAS:
Generacin de una hipermatriz Funciones aplicables a hipermatrices Creacin de estructuras Estructuras anidadas Funciones aplicables a estructuras

VILLOTA CORAL JHONNY ALEXANDER

Semestre: Marzo/2011-Agosto/2011

1) GENERACIN DE UNA HIPERMATRIZ Hasta el momento hemos estudiado la generacin de vectores y matrices, es decir manejo de un mximo de dos dimensiones, pero las denominadas hipermatrices son matrices que manejan tres o ms dimensiones. Para entender esto pondremos como ejemplo la hipermatriz T, de 3 dimensiones:

La representacin anterior nos sugiere que esta hipermatriz se trata del conjunto de matrices de iguales dimensiones una tras la otra. Pero la representacin de ms de 3 dimensiones se vuelve mucho ms compleja y muy difcil de representar grficamente en 2 dimensiones, pues nuestros sentidos no estn preparados para manejar ms de 3 dimensiones; sin embargo, en diversos campos como la ingeniera siempre se tiene problemas que requieren del manejo de n-dimensiones y MATLAB, con las hipermatrices nos puede ayudar haciendo clculos que nos quitaran demasiado tiempo si se hicieran sin la ayuda de este software. Ejemplo de generacin de una hipermatriz 2x3x3 Para la generacin de una hipermatriz procedemos a agregar matrices bidimensionales una tras otra, de la siguiente manera: >> A(:,:,1)=[linspace(1,3,3);4 5 6] A= 1 2 3 4 5 6 >> A(:,:,2)=zeros(2,3) A(:,:,1) = 1 2 3 4 5 6 A(:,:,2) = 0 0 0 0

0 0

>> A(:,:,3)=eye(2,3) A(:,:,1) = 1 2 3 4 5 6

A(:,:,2) = 0 0 0 0 A(:,:,3) = 1 0 0 1

0 0

0 0

>> A(:,:,3)=ones(2,3) A(:,:,1) = 1 2 3 4 5 6 A(:,:,2) = 0 0 0 0 A(:,:,3) = 1 1 1 1

0 0

1 1

Como podemos observar, las matrices bidimensionales que forman la hipermatriz deben tener iguales dimensiones y se generan con las mismas reglas de las matrices normales ya estudiadas. 2) FUNCIONES APLICABLES A HIPERMATRICES Las funciones que son aplicables a hipermatrices se encuentran en el siguiente directorio:

toolbox\matlab\datatypes.
Algunas funciones en hipermatrices admiten ms de dos subndices; por ejemplo, para generar una hipermatriz de 2x3x2, en donde todos sus elementos sean unos; se procede as: >> B=ones(2,3,3) B(:,:,1) = 1 1 1 1

1 1

B(:,:,2) = 1 1 1 1

1 1

B(:,:,3) = 1 1 1 1

1 1

En general, hay que tomar en cuenta que las funciones que operan en MATLAB con escalares, como exp(), cos(),etc.; al aplicarlas a una hipermatriz, operarn elemento a elemento. Las funciones que operan sobre vectores, como mean(), sum(), etc.; operarn en la primera dimensin. Las funciones que se utilizan en lgebra Lineal, como la transpuesta, det(), inv(), etc.; no se pueden aplicar directamente a una hipermatriz; para hacerlo hay que extraer cada matriz y realizarlo individualmente. 3) CREACIN DE ESTRUCTURAS En MATLAB, se pueden crear una estructura sin la necesidad de definir previamente el modelo de la misma. Existen varias formas para crear una estructura, una de estas es crear uno por uno los campos que conformen la estructura. Por ejemplo: >> calificaciones.nombre='Jhonny' calificaciones = nombre: 'Jhonny' >> calificaciones.nota1=10 calificaciones = nombre: 'Jhonny' nota1: 10 Para acceder al campo deseado, simplemente se une el nombre de la estructura con el nombre del campo requerido mediante un punto: >> calificaciones.nota1 ans = 10 Otra forma de crear estructuras es mediante la funcin struct() en donde se pone los nombres de los campos entre apstrofes seguidos por una coma y luego el valor que le queremos dar a dicho campo. Por ejemplo: >> crono = struct('ciclista', 'Lance Armstrong' , 'tiempo_horas', 3.73) crono = ciclista: 'Lance Armstrong' tiempo_horas: 3.7300

Al igual que en la programacin tradicional, se puede crear vectores, matrices (MATLAB permite tambin hipermatrices) de estructuras. Por ejemplo: >> crono(5) = struct('ciclista', 'Lance Armstrong' , 'tiempo_horas', 3.73) Crea un vector de 5 elementos, cada elemento es una estructura tipo crono con los campos ciclista y tiempo_horas. Inicialmente el elemento 5 se rellena con los campos definidos inicialmente, mientras que los dems son una cadena de caracteres vaca. MATLAB tambin permite agregar campos a la estructura en el momento que sea. Por ejemplo, agregaremos el campo distancia a la estructura crono y le asignaremos un valor solamente al elemento 3: >> crono(3).distancia=150 Para ver todos los valores de un campo se escribe el nombre de la estructura seguido de un punto y el campo que queremos ver, as: >> crono.ciclista 4) ESTRUCTURAS ANIDADAS Son estructuras dentro de otras estructuras; en el siguiente ejemplo tenemos una estructura llamada Materias que contiene como uno de sus campos a otra estructura llamada Ctedra: >> Materias=struct('Facultad','Elctrica y Electrnica','Carrera',... 'Telecomunicaciones', 'Catedra', struct('nombre','Software de Simulacin',... 'Creditos', 4)) Materias = Facultad: 'Elctrica y Electrnica' Carrera: 'Telecomunicaciones' Catedra: [1x1 struct] Para acceder a los campos de la estructura anidada, se lo realiza utilizando dos veces el operador punto. As por ejemplo, si queremos aadir una nueva ctedra y ver en pantalla las dos ctedras ingresadas se procede as: >> Materias.Catedra(2).nombre='Sistemas de Transmisin'; >> Materias.Catedra(2).Creditos=5; >> Materias.Catedra(2) ans =

nombre: 'Sistemas de Transmisin' Creditos: 5 >> Materias.Catedra(1) ans = nombre: 'Software de Simulacin' Creditos: 4 5) FUNCIONES APLICABLES A ESTRUCTURAS Las principales funciones que son de gran utilidad en MATLAB son: fieldname(EST) Devuelve una cadena de los caracteres de la estructura EST. Por ejemplo: >> fieldnames(Materias.Catedra) ans = 'nombre' 'Creditos' isfield(EST,e) Permite determinar si la cadena e que ingresemos, es un campo de la estructura EST. Si es verdadero nos devuelve un 1, si es falso un 0. Ejemplo: >> isfield(Materias.Catedra,'Creditos') ans = 1 isstruct(EST) Permite determinar si EST es o no una estructura. Ejemplo: >> isstruct(Materias.Carrera) ans = 0 rmfield(EST,e) Elimina el campo e de la estructura EST.

6) BIBLIOGRAFA Aprenda MATLAB 7.0 como si estuviera en primero, GARCA DE JALN J., RODRGUEZ J.I., VIDAL J., Universidad Politcnica de Madrid, 2005. Introduccin a Matlab y sus aplicaciones, Quintela Estvez, P., Univ. Santiago de Compostela, 1997.

Anda mungkin juga menyukai