Anda di halaman 1dari 55

AS egu

r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

ARREGLOS EN MATLAB

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Arreglos

Estructura de datos que permite almacenar varios datos bajo el mismo


nombre.
VECTORES: son unidimensionales

0 2 4 6 8

www.upibi.net
VS egu
e crida
t od en
r eI nstern et M a tL a b
Oriol Roca

Vectores

Para crear y almacenar en memoria un vector v que tenga como


componentes v1 = 0, v2 = 2, v3 = 4, v4 = 6 y v5 = 8 podemos hacerlo
componente a componente:

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Arreglos

Estructura de datos que permite almacenar varios datos bajo el mismo


nombre.
VECTORES: Para acceder a los elementos de un vector

0 2 4 6 8
1 2 3 4 5

v(1)=0 v(2)=2

www.upibi.net
VS egu
e crida
t od en
r eI nstern et M a tL a b
Oriol Roca

Vectores de fila y de columna

-La diferencia entre un vector fila y un vector columna es fundamental.

-Para introducir un vector fila en MATLAB basta con escribir las componentes del
vector dentro de corchetes y separadas por espacios en blanco:

v=[0 2 4 6 8]
-Para introducir un vector columna se escriben las componentes dentro de
corchetes y separadas por el carcter punto y coma:
v=[0, 2, 4, 6, 8]
- En MATLAB es posible transformar un vector fila en un vector columna y
viceversa (hallar su traspuesta) empleando una comilla simple:

vt=v

www.upibi.net
VS egu
e crida
t od en
r eI nstern et M a tL a b
Oriol Roca

linspace(0,8,5)
Valor inicial Valor final Nmero de elementos

O, para simplificar la creacin de vectores, se puede definir un vector especificando


su primer elemento, un incremento, y el ltimo elemento. As podemos definir
igualmente el vector v como una secuencia que empieza en 0, avanza de 2 en 2 y
que termina en el 8:

www.upibi.net
VS egu
e crida
t od en
r eI nstern et M a tL a b
Oriol Roca

Vectores

Puedes acceder fcilmente al contenido de una posicin del vector, por


ejemplo la primera. O modificarla:

www.upibi.net
VS egu
e crida
t od en
r eI nstern et M a tL a b
Oriol Roca

Vectores

Podemos obtener un elemento del vector llamndolo

>> v(3)
= 4
Obtener porciones del vector es tan fcil como obtener elementos.
Basta con separar el primer nidice del ltimo con dos puntos

>> v(2:4)
=246
www.upibi.net
VS egu
e crida
t od en
r eI nstern et M a tL a b
Oriol Roca

Vectores

Una tcnica importante en Matlab es la concatenacin de dos vectores,


que puede hacerse simplemente pegndolos

>> a = [1,2,3];
>> b = [4,5,6];
>> c=[a,b]
=123456

www.upibi.net
VS egu
e crida
t od en
r eI nstern et M a tL a b
Oriol Roca

Vectores
Algunas veces es necesario introducir un vector con componentes a intervalos
regulares. Esto se realiza fcilmente con MATLAB con la estructura
inicio:incremento:fin. Si no se proporciona un incremento, MATLAB asume que es
1.

>> x1=0:10

Se puede seleccionar el propio incremento.


>> x2=0:2:10

Se puede ir incluso hacia atrs.


>> x3=10:-2:1

O se le puede echar imaginacin.


>> x4=0:pi/2:2*pi

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Leer Vector

n=input(Cuntos elementos deseas? ');


for i=1:n
fprintf('introduce el %g elemento del vector ',i);
vec(i)=input(' ');
end
disp(vec)

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Buscar posicin de un elemento de un vector

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Buscar posicin de un elemento de un vector


n=input('Cuntos elementos deseas? ');
for i=1:n
fprintf('introduce el %g elemento del vector ',i);
vec(i)=input(' ');
end
x=input('Qu elemento quieres buscar? ')
for i=1:n
if v(i)==x
fprintf(' El dato %g est en la posicin %g\n ',x,i);
end
end

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Buscar elemento dada su posicin

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Eliminar Vector

Define un vector kt de 10 elementos

>>kt=[2 8 40 63 3 55 23 15 75 80]

kt =

2 8 40 63 3 55 23 15 75 80

>>kt(6)=[ ] %elimina el sexto elemento


kt =
%el vector ahora tiene 9 elementos
2 8 40 63 3 23 15 75 80

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Eliminar Vector

Define un vector kt de 10 elementos

>>kt(3:6)=[ ] %Elimina elementos de las posiciones 3 a la 6

kt =
%el vector ahora tiene 5 elementos
2 8 15 75 80

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Suma de Elementos (Vector)

A=[6 9 7 3 12 6 8]

A=
6 9 7 3 12 6 8
1 2 3 4 5 6 7

Para esto debemos usar un acumulador (acu)

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Suma de Elementos (Vector)

A=[6 9 7 3 12 6 8]

A=
6 9 7 3 12 6 8
1 2 3 4 5 6 7
acu=0;
vf=input('Cuantos elementos deseas? ');
for i=1:vf
fprintf('introduce el %g elemento del vector ',i);
vec(i)=input(' ');
acu= acu + vec(i);
end
disp(acu)

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Suma de Elementos (Vector)

Otra manera ms sencilla de sumar los elementos de un vector es

utilizar el comando: sum( )


sum(A)

ans =

51

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Vector fila
A=[1 2 3 4 5 6]
A=
1 2 3 4 5 6
Vector columna B=
B=[1; 2; 3; 4; 5; 6] 1
2
3
4
5
6
www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Tamao de un Vector

size(A) devuelve el nmero de filas y de columnas de la matriz A.


size(A) 1 2 3 4 5 6
ans =
1 6
length(A) calcula el nmero de elementos de un vector A

ans =

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Ejercicio

Obtener la suma de los pares e impares de un vector dado por


el usuario

Debemos emplear 2 acumuladores: (pares e impares) que nos


permitan sumar los elementos correspondientes, adems de la
condicin IF

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Ejercicio

Obtener la suma de los pares e impares


pares=0;
impares=0;
x=input('ingrese el tamao del vector ');
for i=1:x
fprintf('ingrese el dato para la posicion %g',i)
vec(i)=input(' ');
if mod(vec(i),2)==0
pares=pares+vec(i);
else
impares=impares+vec(i);
end
end
fprintf('\n la suma de nmeros pares es: %g', pares)
fprintf(' \n la suma de nmeros impares es: %g', impares)

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Funciones para la manipulacin de Arreglos


Funcin Descripcin Ejemplo

length(A) Devuelve el nmero de elementos de >>A=[5 9 2 4];


A >>length(A)
ans= 4
size(A) Devuelve el vector fila [m,n], donde >>A=[6 1 4 0 12;5 19 6
m y n representan el tamao m x n 8 2]
de arreglo A
A=

6 1 4 0 12
5 19 6 8 2

>>size(A)
ans= 2 5

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Funciones para la manipulacin de Arreglos


Funcin Descripcin Ejemplo

reshape(A,m,n) Reordena una matriz A, que tiene r >>A=[5 1 6;8 0 2]


filas y s columnas, a una matriz de m A =
filas y n columnas. El valor de r por s
debe ser igual al de m por n 5 1 6
8 0 2

B=reshape(A,3,2)

B=
5 0
8 6
1 2

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Funciones para la manipulacin de Arreglos


Funcin Descripcin Ejemplo

diag(v) Cuando v es un vector, este >>v=[7 4 2];


comando crea una matriz cuadrada
con los elementos de v en diagonal >>A=diag(v)

A=

7 0 0
0 4 0
0 0 2

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Funciones para la manipulacin de Arreglos


Funcin Descripcin Ejemplo

diag(v) Cuando A es una matriz, este >>A=[1 2 3;4 5 6;7 8 9]


comando crea un vector a partir de
los elementos la de A diagonal A=
1 2 3
4 5 6
68 9
7>>vec=diag(A)

vec =
1
5
9

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Funciones para la manipulacin de Arreglos

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Funciones para la manipulacin de Arreglos

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Funciones para la manipulacin de Arreglos

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Funciones para la manipulacin de Arreglos

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Ejercicios
Dado un vector, elemento a elemento, determina cul elemento es el mayor.

Ejemplo:

V= 2 9 -3 8

Em= 9

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Ejercicios
Dado un vector, elemento a elemento, determina cul elemento es el mayor.

%Determina el elemento mayor de un vector


clc
clear
em=0; %elemento mayor
n=input('Dame el tamao del vector= '); %Elementos de un vector
for k=1:n
fprintf('introduce el %g elemento del vector ',k)
v(k)=input('');
if v(k)>em; %em compara cada uno de los elementos del vector
em=v(k);
end
end
disp(v)
fprintf('El elemento mayor es %g \n',em)

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Ejercicios

n=5

vector= 1 0 1 0 1
--------
n=5

vector= 2 0 4 0 6
--------
n=4

vector= 1 4 9 16

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Ejercicios
Ordenamiento de un vector por mtodo de la BURBUJA
El mtodo de la burbuja es uno de los mas simples, es tan fcil como
comparar todos los elementos de una lista contra todos, si se cumple que uno
es mayor o menor a otro, entonces los intercambia de posicin.

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Ejercicios
Ordenamiento de un vector por mtodo de la BURBUJA
Por ejemplo, imaginemos que tenemos los siguientes valores:

5 6 1 0 3
Lo que hara una burbuja simple, seria comenzar recorriendo los valores de
izquierda a derecha, comenzando por el 5. Lo compara con el 6, con el 1, con
el 0 y con el 3, si es mayor o menor (dependiendo si el orden es ascendiente
o descendiente) se intercambian de posicin. Luego continua con el siguiente,
con el 6, y lo compara con todos los elementos de la lista, esperando ver si se
cumple o no la misma condicin que con el primer elemento. As,
sucesivamente, hasta el ultimo elemento de la lista.

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

MATRICES

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

MATRICES

Una matriz es, como el vector, una coleccin de elementos del mismo tipo.
Sin embargo, mientras el vector es unidimensional una sola fila o columna
en la matriz los datos se organizan en dos o ms dimensiones.

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

MATRICES

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
789
>>M' % Su transpuesta
ans =
147
258
369

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

MATRICES

Son bidimensionales

1 1,1
2 1,2
3 1,3

4 2,1
5 2,2
6 2,3

7 3,1
8 3,2
9 3,3

X(1,1)= 1
X(1,2)=2
X(2,1)=4

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

MATRICES
Existen comandos que permiten crear de forma sencilla matrices.
Por ejemplo:
La matriz identidad

>>eye(5)
ans =
10000
01000
00100
00010
00001

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

MATRICES
Existen comandos que permiten crear de forma sencilla matrices.
Por ejemplo:
la matriz nula

>>zeros(3)
ans =
000
000
000

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

MATRICES
Existen comandos que permiten crear de forma sencilla matrices.
Por ejemplo:
o la matriz cuyos elementos valen todos 1:

>>ones(4)
ans =
1111
1111
1111
1111

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

MATRICES
Recorrido de un matriz

Para recorrer una matriz necesitamos dos bucles anidados. Por ejemplo, si
se desea recorrer todos los elementos de la matriz A por filas, se escribirn
dos sentencias for anidadas:

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

MATRICES

Ejemplo

n=input(Cuntos elementos deseas? ');


for i=1:n
for j=1:n
fprintf(Ingrese el dato para la posicion %g, %g,i,j)
vec(i,j)=input( );
end
end
disp(vec)

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

MATRICES

Construccin de matrices con vectores

Creamos tres vectores fila con los comandos


>> v1=1:3
>> v2=4:6
>> v3=7:9

Y creamos una matriz con los vectores anteriores


M=[v1;v2;v3]

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

MATRICES

Construccin de matrices con vectores

Cmbiense los vectores v1,v2,v3 en vectores columna con el


operador de trasposicin.
>> v1=v1
>> v2=v2
>> v3=v3

El comando

>> P=[v1,v2,v3]

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Buscar elemento Matrices

n=input(Cuntos elementos deseas? ');


for i=1:n
for j=1:n
fprintf(Ingrese el dato para la posicion %g, %g,i,j)
vec(i,j)=input( );
end
end
disp(vec)
x=input(Ingrese el valor que quiere buscar);
for i=1:n
for j=1:n
if vec(i,j)==x
fprintf(El dato %g esta en %g, %g\n,x,i,j)
end
end
end

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Suma y resta de arreglos

Las operaciones de suma y resta se pueden utilizar con arreglos de


tamaos idnticos, es decir, aquellos que tienen el mismo nmero de
filas y columnas. La suma, as como la resta, de dos arreglos se lleva
al cabo sumando o restando sus elementos.

Cuando a un arreglo se le suma o resta un escalar (un nmero), ste


se aade o se sustrae de todos los elementos del arreglo

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Suma y resta de arreglos

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Suma y resta de arreglos

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Multiplicacin de arreglos

La multiplicacin de matrices se ejecuta solamente si el nmero de


columnas de la matriz A es igual al nmero de filas de la matriz B. El
resultado es una matriz que tiene el mismo nmero de filas que A y el
mismo nmero de columnas que B. Por ejemplo, si A es una matriz de 3
x 3 y B es una matriz de 3 x 2. El resultado ser de dimensin 3 x 2

Dos vectores se pueden multiplicar slo si ambos tienen el mismo


nmero de elementos. Es necesario adems que uno sea vector fila y el
otro vector columna

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Multiplicacin de arreglos

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Multiplicacin de arreglos

www.upibi.net
AS egu
r rrida
e gd en
l oI nstern et M a tL a b
Oriol Roca

Ejercicios

Un programa que pida al usuario el tamao de las filas y las columnas.

Y valide que estas sean iguales para que la matriz sea cuadrada.

Adems deber leer los datos de la matriz cuadrada y determinando la


suma de los nmeros pares e impares contenidos en la matriz.

www.upibi.net

Anda mungkin juga menyukai