Beruflich Dokumente
Kultur Dokumente
INVESTIGACION NO 3
PARALELO: 702
2019 – 2020
Análisis Vectorial con Matlab (uso de vectores y matrices con matlab)
En programación, se le denomina vector, formación o arreglo (en inglés array) a una zona
de almacenamiento contiguo que contiene una serie de elementos del mismo tipo, los
elementos de la matriz.
Desde el punto de vista lógico una matriz se puede ver como un conjunto de elementos
ordenados en fila (o filas y columnas si tuviera dos dimensiones).
Se puede considerar que todas las matrices son de una dimensión, la dimensión principal,
pero los elementos de dicha fila pueden ser a su vez matrices (un proceso que puede ser
recursivo), lo que nos permite hablar de la existencia de matrices multidimensionales,
aunque las más fáciles de imaginar son los de una, dos y tres dimensiones.
Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos
se realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden
estar ordenados y se va a utilizar acceso secuencial sería más adecuado utilizar una lista.
>> x= [ ];
>> x
x=[]
También se puede crear un vector asignando valores a sus componentes con el
índice:
>> x(1)=5;
>> x(2)=7;
>> x(3)=4;
>> x
x=
5 7 4
El manejo individual de los componentes requiere el uso de un índice
>> x(3)
ans = 4
Sustituir el cuarto componente por el 9
>> x(4)=9
x=
6 7 4 9 3
Mostrar los componentes 2, 3 y 4
>> x(2:4)
ans =
7 4 9
Insertar en la posición 3 el valor 8
>> x=[x(1:2),8,x(3:5)]
x=
6 7 8 4 9 3
Funciones que operan con vectores
Usamos el mismo comando sort, pero esta vez le especificamos que deseamos obtener
un orden descendente de la siguiente forma:
sort(x,’descend’);
Podemos usar la función cumsum que suma los elementos acumulando el valor de los
datos anteriores dentro del vector o dentro de la columna de la matriz.
Ejemplo:
cumsum(x);
Productorio en Matlab
Para multiplicar todos los elementos de un vector, o todas las columnas de una matriz,
usamos la función prod.
Notación: prod(x);
Por ultimo para encontrar el tamaño de un vector o una matriz dentro de matlab, podemos
usar cualquiera de las dos siguientes instrucciones, los cuales en la primera,
función size me entrega las dimensiones de la matriz (vector) y la segunda, length me
entrega el mayor de las dimensiones de la matriz (vector).
Ejemplo:
>> v=[2 4 7 3 5 7 8 6];
>> n=length(v)
n=
8
Pertenencia de un elemento en un vector
>> v=[2 4 7 3 5 7 8 6];
>>
e=ismember(8,v)
e=
1
>>
e=ismember(9,v)
e=
0
Determinar adicionalmente la posición del elemento en el vector
>>
[e,p]=ismember(8,v)
e=
1
p=
7
Determinar cuáles elementos de un vector son iguales a un elemento dado
>> v=[2 4 7 3 5 7 8 6];
>>
t=ismember(v,7)
t=
0 0 1 0 0 1 0 0 El resultado es un vector de coincidencias
Determinar cuántos elementos de un vector son iguales a un elemento dado.
Ejemplo.
clear x; o x=[ ];
Matrices en MATLAB
Es el tipo fundamental de datos en MATLAB. Se puede asociar a un cuadro con datos
organizados en filas y columnas.
Por simplicidad supondremos que las filas son horizontales numeradas con la numeración
natural de arriba hacia abajo, y las columnas son verticales, numeradas con la numeración
natural de izquierda a derecha.
Notación:
Nombre de la matriz = [elementos de fila 1; elementos de fila 2; elementos de fila 3;... ]
Matrices en la ventana de comandos
Matrices en la ventana de comandos
>> a=[2 5 7; 4 6 2; 8 9 3]
a=
2 5 7
4 6 2
8 9 3
El manejo de sus elementos requiere especificar el número de fila y de columna
(índices)
>> e=a(3,2)
e=
9
Puede manejar una fila completa
>> d=a(2, 1:3)
d=
46 2
También columnas
>>d=a(1:3,2)
d=
5
6
9
Notación abreviada
>> d=a(2, :)
d=
46 2
Agregar columna
>> a(:,4)=[3;5;7;9]
a=
2 4 5 3
6 0 7 5
-2 8 3 7
5 7 9 9
Eliminar fila
>> a(3,:)=[ ]
a=
2 4 5
6 0 7
5 7 9
Insertar columna
>> b=[3;9;8]
b=
3
9
8
>> a=[a(:,1),b,a(:,2:3)]
a=
2 3 4 5
6 9 0 7
5 8 7 9
Matrices especiales
Matriz de ceros
>> a=zeros(3,4)
a=
0 0 0 0
0 0 0 0
0 0 0 0
Matriz identidad
>> a=eye(4,4)
a=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Matriz con números aleatorios
>> a=rand(4,3)
a=
0.9218 0.9355 0.0579
0.7382 0.9169 0.3529
0.1763 0.4103 0.8132
0.4057 0.8936 0.0099
>> a=fix(rand(4,3)*10)
a=
8 5 7
5 4 9
3 6 5
7 6 8
>> t=fix(rand(5,3)*25+1)
t=
6 12 24
3 10 25
3 20 5
2 16 4
11 20 18
Funciones especiales para matrices
>> a=[2, 4, 5; 6, 0, 7; -2, 8, 3; 9, 2, 8]
a=
2 4 5
6 0 7
-2 8 3
9 2 8
Obtener las dimensiones de una matriz
>> [n,m]=size(a)
n=
4
m=
3
Suma de columnas
>> c=sum(a) c =
15 14 23
Suma de filas
>> f=sum(a') a' es la transpuesta de a
f=
11 13 9 19
Suma de todos los elementos
>> s=sum(f)
s = 52
>> t=ismember(a,8)
t=
0 0 0
0 1 0
1 0 0
0 0 1
El resultado es una matriz de coincidencias
>> n=sum(sum(t))
n=
3
>> b=sort(a)
b=
-2 0 3
2 2 5
6 4 7
9 8 8
Funciones especiales para
matrices Determinante
>> b=[5, 3, 2; 0, 8, 1; 2, 5, 4]
b=
5 3 2
0 8 1
2 5 4
>> d=det(b)
d=
109
Inversa
>> c=inv(b)
c=
0.2477 -0.0183 -0.1193
0.0183 0.1468 -0.0459
-0.1468 -0.1743 0.3670
>> b=[4;5;6]
b=
4
5
6
>> x=inv(a)*b
x=
-0.7500
1.4063
-0.2187
>> b=[5, 3, 2; 0, 8, 1; 2, 5, 4]
b=
5 3 2
0 8 1
2 5 4
>> c=a+b
c=
7 7 7
6 8 8
0 13 7
>> c=a*b
c=
20 63 28
44 53 40
-4 73 16
Matrices especiales
>> a=ones(3) matriz 3x3 iniciada con unos
>> a=ones(3,5) matriz 3x5 iniciada con unos
>> a=zeros(4,5) matriz 4x5 iniciada con ceros
>> a=eye(5) matriz identidad 5x5
>> a=magic(4) cuadrado mágico 4x4
>> a=hilb(5) matriz de Hilberth 5x5
>> x=[2, 5, 3, 7]; un vector
>> a=vander(x) matriz de Vandermonde 4x4 usando un vector
>> a=[ ] matriz nula
>> a = rand(3,4); matriz 3x4 con números aleatorios