Вы находитесь на странице: 1из 9

Practica 2.

Estructuras de Datos en MATLAB

Inform
atica Aplicada - Grado en Ingeniera Qumica, UAM, 2009/2010

Fecha limite de entrega de la practica

Grupo A: 5 de Marzo
Grupo B: 12 de Marzo

Objetivos

Al finalizar esta pr
actica se deber
an haber adquirido conocimientos sobre los siguientes temas de programaci
on
en MATLAB:
Estructuras de datos en MATLAB

Introducci
on

MATLAB trabaja esencialmente con matrices de n


umeros reales o complejos como estructura de datos principal.
Las matrices 1 1 son interpretadas como escalares y las matrices fila o columna como vectores. Por defecto
todas las variables son matriciales y nos podemos referir a un elemento con dos ndices o con uno en caso de
vectores.

Estructuras de datos b
asicas - Vectores y matrices

4.1

Introducci
on

Para definir un vector fila, basta introducir sus elementos entre corchetes:
>> v = [1 2 3] % Vector de 3 elementos
v=
123

>> w = [4 5 6];
El operador es el de trasposici
on:
>> w0
ans =
4
5
6

Si queremos declarar un vector de elementos equiespaciados entre dos extremos, por ejemplo, que el primero
valga 0, el u
ltimo 20 y la distancia entre elementos sea 2, basta poner:
>> vect1 = 0 : 2 : 20
vect1 =
0 2 4 6 8 10 12 14 16 18 20
Equivalentemente, si lo que conocemos del vector es que la primera coordenada vale 0, la u
ltima 20 y que tiene
11 en total, escribiremos:
>> vect2 = linspace(0, 20, 11)
vect2 =
0 2 4 6 8 10 12 14 16 18 20
A los elementos de un vector se accede sin m
as que escribir el nombre del vector y, entre parentesis, su ndice:
>> vect2(3)
ans =
4
se pueden extraer subvectores:
>> vect2(2 : 5)
ans=
2468
las posibilidades del operador : son interesantes:
>> vect1(: 5)
ans=
0
2
4
6
8

>> vect1(5 :)
ans=
10
12
14
16
18
20
Las matrices se escriben como los vectores, pero separando las filas mediante un punto y coma; as una matriz
3x3:
>> M = [1 2 3; 4 5 6; 7 8 9]
M=
123
456
2

789

>> M 0 % Su traspuesta (su adjunta)


ans =
147
258
369

>> mat = [v; w; 0 0 1] % Tambien es una matriz 3x3


mat =
123
456
001
A los elementos de una matriz se accede escribiendo el nombre de la matriz y, entre parentesis, los respectivos
ndices:
>> mat(1, 3) % Elemento en la primera fila y tercera columna de la matriz mat
ans =
3
Tambien se puede acceder a un fila o columna completas:
>> mat(:, 2) % Segunda columna de mat
ans =
2
5
0

>> mat(2, :) % Su segunda fila


ans =
456
acceder a la matriz como si fuera un vector columna:
>> M (2 : 7) % Los elementos segundo a septimo generados como vector columna
ans =
4
7
2
5
8
3
o acceder a cualquiera de sus submatrices:
>> mat(2 : 3, [1 3]) % Submatriz formada por los elementos que estan en
% todas las filas que hay entre la segunda y la tercera y
% en las columnas primera y tercera

ans =
46
01
Existen algunas matrices definidas previamente; por ejemplo, la matriz identidad,
>> eye(5) % Matriz identidad de 5 x 5
ans =
10000
01000
00100
00010
00001
la matriz nula,
>> zeros(3)
ans =
000
000
000
o la matriz cuyos elementos valen todos 1:
>> ones(4)
ans =
1111
1111
1111
1111
El argumento enviado a las 3 funciones anteriores (el numero entre parentesis) especificaba las dimensiones de
la matriz a generar. Se puede conocer el tama
no de una matriz y la longitud de un vector mediante:
>> size(mat) % Dimensiones de la matriz mat (n
umero de filas, n
umero de columnas)
ans =
33

>> size(v)
ans =
13

>> length(v) % Longitud del vector (n


umero de elementos)
ans =
3
Existen comandos que permiten crear de forma sencilla matrices. Por ejemplo:
>> diag(v)% Matriz diagonal cuya diagonal es el vector v
ans =

100
020
003

>> diag(diag(M )) % Matriz diagonal con la diagonal de M


ans =
100
050
009

>> tril(M ) % Matriz formada por la parte triangular inferior de M.


ans =
100
450
789

>> triu(M ) % Matriz formada por la parte triangular superior de M.


ans =
123
056
009
Las funciones matem
aticas elementales est
an definidas de forma que se pueden aplicar sobre un vector. El
resultado es el vector formado por la aplicaci
on de la funcion a cada elemento del vector. As:
>> log(v)
ans =
0 0.6931 1.0986

>> p = (0 : 0.1 : 1) pi % Vector definido como el producto de un vector por un escalar


p=
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416

>> x = sin(p)
x=
Columns 1 through 7
0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
Columns 8 through 11
0.8090 0.5878 0.3090 0.0000
Las operaciones habituales entre vectores (suma, resta y producto escalar de vectores; suma, resta, producto y
potencia de matrices) se representan con los operadores habituales:
>> v, w % Recordamos los valores de v y w

v=
123
w=
456

>> z = v w0 % Producto escalar (producto de matrices 1x3 por 3x1)


z=
32

>> Z = w0 v % Producto de matrices 3x1 por 1x3 = Matriz 3x3


Z=
4 8 12
5 10 15
6 12 18

>> v w % Los vectores v y w no se pueden multiplicar


???Errorusing ==>
Inner matrix dimensions must agree.

>> mat % Recordamos el valor de la matriz mat


mat =
123
456
001

>> mat2 % Matriz mat elevada al cuadrado


ans =
9 12 18
24 33 48
001
Tambien pueden efectuarse multiplicaciones, divisiones y potencias de arrays, entendiendolas como elemento a
elemento (como, de hecho, se realizan la suma y la resta). El operador utilizado para ellas es el habitual
precedido por un punto; es decir:
>> v. w % Vector formado por los productos de los respectivas elementos: % ans(i)=v(i)*w(i)
ans =
4 10 18

>> w./v % Vector formado por el cociente de cada elementos de w entre el elemento correspondiente de v:
ans =
4.0000 2.5000 2.0000

>> mat.2 % mat elevada al cuadrado: ans(i,j)=mat(i,j)2


ans =

149
16 25 36
001
Pueden calcularse determinantes de la siguiente manera:
>> det(mat)
ans =
-3
y resolverse sistemas de ecuaciones lineales del estilo Ax = b. Por ejemplo si generamos la siguiente matriz A y
el vector columna b:
>> A = [2 1 1; 1 1 0; 0 1 3]
A=
2 -1 1
110
0 1 -3
>> b = [3 3 7]0
b=
3
3
-7
una forma de resolver este sistema de ecuaciones lineales seria utilizar la formula x = A1 b:
>> x = inv(A) b
x=
1
2
3
y otra forma seria:
>> Ab = [A b]
Ab =
2 -1 1 3
1103
0 1 -3 -7

>> rref (Ab)


ans =
1001
0102
0013

Ejercicios

5.1

Ejercicio 1

Resolver
el siguiente
sistema
dos procedimientos distintos y comprobar que sale la misma soluci
on:
utilizando

4
x1
1
1
0
3

2
1 1 1

x2 1
3 1 1 2 x3 = 3
4
x4
1 2
3 1

5.2

Ejercicio 2



2
1
Dados dos vectores fila v y w, v =2 w = 2
3
1
explicar cual es la diferencia entre realizar estas operaciones en matlab:

>> v 0 w
>> v. w

5.3

Ejercicio 3

Realizad las siguientes tareas (utilizad el comando help si fuera necesario):


1. Definid la matriz/vector columna

2
3
5

mediante dos notaciones diferentes: una que use , para separar los elementos, y otra que emplee ;
2. Construid una matriz de dimensi
on 4 x 3 con 0 en todas las posiciones.
3. Construid una matriz de dimensi
on 3 x 2 con 1 en todas las posiciones.
4. Construid una matriz de dimensi
on 5 x 5 con 1 en la diagonal y ceros fuera de ella.
5. Construid una matriz de dimensi
on 3 x 5 con n
umeros aleatorios entre 0 y 1 siguiendo una distribuci
on
uniforme.
6. Construid una matriz de dimensi
on 3 x 5 con n
umeros aleatorios de media 0 y desviacion tpica 1 siguiendo
una distribuci
on normal.
7. Construid una matriz simetrica de dimension 3 x 3
Comandos u
tiles para el ejercicio: rand, randn, zeros, ones, (matriz transpuesta)

5.4

Ejercicio 4

Dada la matriz A:

1
1
1

2
4
2

3
2
1

1. Introducid los datos de la matriz A en una variable con el mismo nombre


2. Obtened la matriz transpuesta de A y guardarla en una variable A t.

3. Hallad la inversa de la matriz A, y asignad el resultado a una variable A inv.


4. Calculad el determinante de la matriz A, y almacenarla en una variable A det.
5. Realizad las siguientes operaciones matriciales, e interpretad los resultados en cada caso:
A*A
A.*A
A2
A.2
A/A
A./A
6. A
nadid una columna compuesta por 1, 4 y 8 al final de la matriz A, y guardad la matriz resultante en
una variable B.
7. Multiplicad A por B, y guardad el producto en una variable A por B.
8. Extraed la segunda, tercera y cuarta columnas de B, y guardarla en las variables B2, B3 y B4.
9. Cread una matriz C con las variables B2, B3 y B4.
10. Ejecutad las sentencias x = f ind(C > 2), C(x) y explicad los resultados que se obtienen.
Comandos u
tiles para el ejercicio: diag, inv, (matriz transpuesta), det

Material a entregar

La pr
actica se debe entregar de forma electr
onica Y por escrito antes de la fecha de finalizacion indicada al
comienzo del enunciado en el laboratorio 208 de la escuela politecnica o bien durante la practica correspondiente
a la fecha limite de entrega. No se admitir
an practicas con retraso. En general, las practicas tienen fecha lmite
un viernes y por lo tanto pueden entregarse hasta la hora de la clase de la fecha limite.
Se enviar
a un u
nico fichero zip a traves del sistema de entrega de practicas de la Escuela Politecnica Superior,
INGENIERIA TECNICA

para el periodo: SEGUNDO CUATRIMESTRE, la categora: TITULACION

INDUSTRIAL y el nombre de la asignatura: INFORMATICA APLICADA.


http://docenciaweb.ii.uam.es/esp/alumnos/practicas/envio_practicas.php
La pagina para el envi
o de practicas tiene una proteccion para que ninguna persona que no tenga relacion con
la Escuela Politecnica pueda acceder a la misma. En la ventana de autentificacion donde se tiene que introducir
un login y una password, los valores a introducir son: practicas y entrega.
El nombre del fichero ser
a PN X YY.zip, donde N se debera reemplazar por el n
umero de practica (2,3,4
o 5), X se deber
a reemplazar por el grupo de practicas (A o B) e YY por el n
umero de pareja. As por
ejemplo, la pareja 1 del grupo A deber
a enviar su practica 2 en el fichero P2 A 01.zip. El numero de grupo lo
podreis encontrar en la pagina web de las practicas de la asignatura en el enlace Tabla de Excel con las notas
de practicas de los grupos A y B, es el numero a la izquierda de los nombres de los componentes de la pareja.
El fichero Excel lo podeis encontrar en la p
agina de practicas de la asignatura en:
http://arantxa.ii.uam.es/~drozado/fund_info.html
No se admitir
an practicas con retraso. En general, las practicas tienen fecha lmite un viernes y por lo tanto
pueden entregarse hasta la hora de la clase de la fecha limite.

Вам также может понравиться