Sie sind auf Seite 1von 19

Deber octave

Diego Almachi

Mishelle Alban

Departamento de Electronica
ESPE
10 de abril de 2019

1
1. Ejercicios
1.1. Crear una función varibles. que tome como dato
de entrada dos variables y que imprima en pan-
talla la suma, la resta, la multiplicación y la di-
visión entre las variables. Ejercute el programa
usando variables simples(enteros. flotante), vec-
tores y matrices. NO necesita hacer validaciones,
ejecute ideales.
function [ S R M D] = v a r i a b l e s ( a , b )
%[ S R M D] = v a r i a b l e s ( 3 , 4)
S=a+b ;
R=a−b ;
M=a∗b ;
D=a/b ;
endfunction

%para v e c t o r e s
function [ Sv Rv Mv] = v a r i a b l e s ( a , b )
%[ Sv Rv Mv] = v a r i a b l e s ( [ 2 : 2 : 4 ] , [ 3 ] )
%No e x i s t e d i v i s i o n e n t r e v e c t o r e s y l a m u l t i p l i c a c i o n s o l o s e da e n t r e
Sv=a+b ;
Rv=a−b ;
Mv=a . ∗ b ;
endfunction

%para M a t r i c e s
function [ St Rt Mt ] = v a r i a b l e s ( a , b )
%[ St Rt Mt ] = v a r i a b l e s ( [ 2 2 ] , [ 3 ] )
%No e x i s t e d i v i s i o n e n t r e v e c t o r e s y l a m u l t i p l i c a c i o n s o l o s e da e n t r e
St=a+b ;
Rt=a−b ;
Mt=a . ∗ b ;
endfunction
Corrida del programa .

2
>> [S R M D] = variables (3, 4)
S = 7
R = -1
D = 0.75000
?>> [Sv Rv Mv] = variables ([2:2:4],[3])
Sv =

5 7

Rv=

-1 1

Mv=

6 12

>> [St Rt Mt] = variables ([2 2],[3])

St =

5 5

Rt=

-1 -1

Mt=

6 6

1.2. Manipulación de matrices


Investigue como funciona el comando mod().

El comando mod es aquel que nos ayuda a saber cual es el resto o residuo en

3
una división enter para tener como resultado un entero. Auque no siempre va
a ser positivo el signo que existe por lo cual si influye el signo en la división.
Código
function e j e r c i c i o 2 (m)

a=round (15∗ rand ( ) ) ;


b=round (15∗ rand ( ) ) ;
nueva_matriz=round (10∗ rand ( a , b ) )
lmc=s i z e ( nueva_matriz ) ;
lm=s i z e (m) ;
i f ( lmc (1) >=4)
c u a r t a _ f i l a=m( 4 , : )
else
f p r i n t f ( ’ l a ␣ c u a r t a ␣ f i l a ␣no␣ s e ␣ puede ␣ mostrar ␣\n ’ )
end
i f ( lmc (2) >=2)
segunda_columna=m( : , 2 )
else
f p r i n t f ( ’ no␣ e x i s t e ␣una␣ segunda ␣ columna ␣ para ␣ mostrar \n ’ )
end
i f ( lm(1)>=4&&lm(2) >=2)
m a t r i z 4 x 4=m( 1 : 4 , 1 : 4 )
else
f p r i n t f ( ’ l a ␣ m a t r i z ␣ nos ␣ puede ␣ b r i n d a r ␣ o t r a ␣ m a t r i z ␣4 x4\n ’ )
end

>> a=[7 5 2 1 3;2 4 3 7 0;9 2 4 1 8;5 5 6 2 3;2 4 5 6 7; 3 4 5 6 3]

a =

7 5 2 1 3
2 4 3 7 0
9 2 4 1 8
5 5 6 2 3
2 4 5 6 7
3 4 5 6 3

4
>> ejercicio2(a)
nueva_matriz =

8 3 6 3 4 8 9 2 9 5 4 9 9
7 1 2 8 1 6 1 2 0 5 2 6 6
3 4 3 4 9 6 8 9 3 2 6 6 6
8 1 2 0 7 5 9 6 5 8 1 1 2
9 10 1 6 9 3 7 6 2 6 3 0 1
1 1 1 8 8 2 4 3 2 9 8 5 9
2 4 5 5 2 4 3 3 6 6 0 10 8
6 9 9 2 7 6 5 3 3 6 8 4 3
3 4 7 5 5 2 9 1 6 4 1 5 4
9 9 6 7 3 5 7 8 0 0 4 7 10
8 10 3 8 4 3 5 3 6 9 7 1 4
4 8 7 1 0 7 9 9 2 3 4 5 9

cuarta_fila =

5 5 6 2 3

segunda_columna =

5
4
2
5
4
4

matriz4x4 =

7 5 2 1
2 4 3 7
9 2 4 1
5 5 6 2

Explicación Mediante el siguiente código se puede extraer la cuarta fila


cuartaf ila = m(4, :), segunda columna segundac olumna = m(:, 2) y final-

5
mente una matriz cuadrada de orden 4matriz4x4 = m(1 : 4, 1 : 4) . Para
empezar se crea una matriz ramdomica parapoder extraer tanto las filas y
columnas que deseemos extraer de la matriz. En el caso de extraer una fila o
columna que no exista aparecera el mensaje que no se puede mostrar dicha
fila o columna, otra alternativa de cometer error es cuando la matriz no tiene
la dimension necesaria como para devolvernos una 4x4 ya que tomaos de la
primera fila a la cuarta columna y la la primera columna a la cuarta fila.
Código
function e j e r c i c i o 2 _ p a r t e 2 (m)

lm=s i z e (m) ;
i f ( lm(1)==lm ( 2 ) )
columnas_sum=sum(m)
Total_sum=sum( columnas_sum )
columnas_prod=prod (m)
Total_prod=prod ( columnas_prod )
else
f p r i n t f ( ’ Esta ␣ m a t r i z ␣no␣ e s ␣ cuadrada ’ )
end

>> a=[1 2 3; 2 3 4; 3 4 5]

a =

1 2 3
2 3 4
3 4 5

>> ejercicio2_parte2(a)
columnas_sum =

6 9 12

Total_sum = 27
columnas_prod =

6 24 60

6
Total_prod = 8640

Explicación Mediante la función presentada podemos sumar variar co-


lumnas de una matriz siempre y cuando esta matriz sea cuadrada sum,la
cual viene dada por una matriz previamente ingresada y la misma condi-
ción existe para la multiplicacion mediante el comando prod con la misma
condición anteriormente dada.
Código
function e j e r c i c i o 2 _ p a r t e 3 ( a )

l a=s i z e ( a ) ;
n=prod ( l a ) ;
t o t a l 1=sum(sum( a ) ) ;
media=t o t a l 1 /n
med_matriz ( 1 : l a ( 1 ) , 1 : l a (2))= media ;
b=a−med_matriz ;
b=b . ^ 2 ;
v a r i a n z a=sum(sum( b ) ) / n
d e s v i a c i o n _ e s t a n d a r=v a r i a n z a ^ ( 1 / 2 )

>> e=[1 2 3; 4 5 6;7 8 9]

e =

1 2 3
4 5 6
7 8 9

>> ejercicio2_parte3 (a)


media = 3
varianza = 1.3333
desviacion_estandar = 1.1547

Explicación Lo que la función nos permite realizar es la media, varian-


za y desviación estandar de los datos que tiene una matriz para empezar
designamos que "la"va a tomar el valor del tamaño de la matriz ingresada,

7
luego "n"va a ser el valor del producto del numero de elementos de la matriz,
"total1.es el valor de la suma de cada uno de los elementos de la matriz, en-
tonces sabemos que la media viene dada por la suma de los elementos de la
matriz dividido para el numero total de elementos asi obtenemos media.
En el caso de la varianza primero calculamos las desviaciones respecto a la
media por lo tanto podemos usar la expresion ”a − medm atriz” y la misma
expresion elevar al cuadrado y dividimos para el numero total de elementos.
La desviación estandar se calcula con la raiz cuadrada de la varianza.

1.3. Investique para que sirven los siguientes coman-


dos de Matlab. Que datos sirven como entrada y
cual es la salida o resultado que envia el comando.
mod()
Es aquel que nos ayuda a saber cual es el resto o residuo en una división
enter para tener como resultado un entero. Auque no siempre va a ser
positivo el signo que existe por lo cual si influye el signo en la división.

diag()
Este comando nos muestra la diagonal principal que tiene una matriz

real()
Este comando nos devuelve la parte real de un numero imaginario

imag()
Este comando nos devuelve la parte imaginario de un numero complejo

round()
Este comando redondea al entero mas cercano

fix()
Este comando solo mantiene la parte entera de un numero decimal

floor()
Este comando redondea un número al entero inferior.

ceil()
Este comando redondea un número al entero superior.

8
sign()
Este comando nos permite observar el signo de un numero que llegue-
mos a ingresar

log()
Este comando es la funciń de logaritmo neperiano o logaritmo natural

log10()
Este comandoes la función logaritmo

exp()
Este comando es la función exponencial

linspace()
Este comando general un vector cuyos puntos estan espaciados lineal-
mente

magic()
Este comando permite generar una matriz de nxn dimensiones

inv()
Este comando nos permite recibir la matriz inversa a la que hemos
ingresado

sin(), asin(),sinh(),cos(),acos(),cosh()
Este comando son las funciones del seno y coseno entre las cuales entan
las inversar e hiperbolicas

>> mod (8,3)


ans = 2
>> a=[1 2 3; 2 3 4; 3 4 5]
a =

1 2 3
2 3 4
3 4 5

>> diag (a)


ans =

9
1
3
5

>> real(1+4i)
ans = 1
>> imag (1+4i)
ans = 4
>> round (9/4)
ans = 2
>> fix(1.44444)
ans = 1
>> floor(2.5555)
ans = 2
>> ceil (2.5555)
ans = 3
>> sign(-5)
ans = -1
>> log(20)
ans = 2.9957
>> log10(20)
ans = 1.3010
>> exp(3)
ans = 20.086
>> linspace (3,3,1)
ans = 3
>> A=magic(4)
A =

16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

>> inv(A)
warning: matrix singular to machine precision, rcond = 1.30614e-017
ans =

10
9.3825e+013 2.8147e+014 -2.8147e+014 -9.3825e+013
2.8147e+014 8.4442e+014 -8.4442e+014 -2.8147e+014
-2.8147e+014 -8.4442e+014 8.4442e+014 2.8147e+014
-9.3825e+013 -2.8147e+014 2.8147e+014 9.3825e+013

>> sin(60)
ans = -0.30481
>> asin(60)
ans = 1.5708 - 4.7874i
>> sinh(60)
ans = 5.7100e+025
>> cos(60)
ans = -0.95241
>> acos(60)
ans = 0.00000 + 4.78742i
>> cosh(60)
ans = 5.7100e+025

1.4. Dada una matriz NXN agregar una columna n − 1


Código
function e j e r c i c i o 4 ( a )

l a=s i z e ( a )
i f ( l a (1)== l a ( 2 ) )

for i =1: l a ( 1 )
co =0;
for j =1: l a (1)+1
i f ( j==l a (1) −0)
mat_ag ( i , j )= f i x ( ( 3 ∗ rand ( ) ) ) ; ;
co =1;
else
mat_ag ( i , j )=a ( i , j−co ) ;
end
end

11
end
mat_ag
else
f p r i n t f ( ’ l a ␣ m a t r i z ␣ i n g r e s a d a ␣no␣ e s ␣ cuadrada ’ )
end

>> a=[1 2 3; 3 2 2; 1 2 3]
a =

1 2 3
3 2 2
1 2 3

>> ejercicio4 (a)


la =

3 3

mat_ag =

1 2 0 3
3 2 0 2
1 2 0 3

Explicación Para empezar nosotros ingresamos nuestra matriz, para


ayudar a colocar nuestra columna mediante un for para la columna donde
deseemos colocar, es por medio de otro ciclo for podemos colocar la posición
con la ayuda de un contador en la posición 0. luego asignamos un valor
cualquiera a la columna deseada.

1.5. Dada una matriz NXN agregar una fila al princi-


pio y al final de la matriz
Código
function e j e r c i c i o 5 ( a )

l a=s i z e ( a ) ;

12
i f ( l a (1)== l a ( 2 ) )
co =0;
for i =1: l a (1)+2
for j =1: l a ( 1 )
i f ( i ==1)
mat_ag ( i , j )= f i x ( ( 3 ∗ rand ( ) ) ) ;
co =1;
e l s e i f ( i==l a (1)+2)
mat_ag ( i , j )= f i x ( ( 3 ∗ rand ( ) ) ) ;
else
mat_ag ( i , j )=a ( i −co , j ) ;
end
end
end
mat_ag
else
f p r i n t f ( ’ l a ␣ m a t r i z ␣ i n g r e s a d a ␣no␣ e s ␣ cuadrada ’ )
end

>> e=[1 2 3; 4 5 6;7 8 9]

e =

1 2 3
4 5 6
7 8 9

>> ejercicio5 (e)


la =

3 3

mat_ag =

2 2 2
1 2 3
4 5 6
7 8 9

13
1 0 2

Explicación
Para empezar definimos nuestra variable de entrada y empezamos con un
if el cual me permita añadir filas si la matriz es cuadrada de igual manera
con 2 ciclos for puedo colocar el lugar donde quiero que las filas aparezcan y
mediante un randomico coloco los numeros en las filas y con el comando fix
hago que solo aparezcan numeros enteros en las posiciciones.

1.6. Dadas 2 variables A y b; donde A es matriz y b


vector, use el comando max(), min().
Código
function e j e r c i c i o 6 (A, b )

lA=s i z e (A ) ;
l b=s i z e ( b ) ;
max( lA )
min( l b )

>> a=[1 2 3; 2 3 4; 3 4 5]

a =

1 2 3
2 3 4
3 4 5

>> b=[1 2 3 4 4 4]
b =

1 2 3 4 4 4

>> ejercicio6 (a,b)


lA =

14
3 3

lb =

1 6

ans = 3
ans = 1

Explicación Mediante la función podemos ingresar una matriz y un


vector con los comandos "max.el cual contiene el máximo elemento que se
encontró en cada una de las columnas y "min"se retorna el mínimo valor
encontrado en la matriz o vector.

1.7. Investigue el o los comandos para ordenar los ele-


mentos de un vector (ascedente y descendente).
Para empezar debermos definir una matriz mediante cualquier método.
Por ejemplo, .A = [4 3 4 3 6]"produce una matriz denominada ’A’ compuesta
por cuatro elementos con los valores secuenciales 4, 3, 4,3 y 6. A continua-
cion llamamos otra matriz como "B=sort (A)"para cambiar el orden de los
elementos de la matriz ’A’ en orden ascendente en una nueva matriz deno-
minada ’B’.
Se aplica la el mismo principio si usamos el comando "B=sortrows(A,-1).asi
podemos ordenar en forma descendente.
Cuando usamos algoritmos se puede usar tanto shellsort este trabaja aumen-
tando los elementos que se van a intercambiar al momento de ordenar.

1.8. Dada una matriz NxM, ordenar ascendentemente


la primera columna de la matriz.
Código

function e j e r c i c i o 8 (m)

lm=s i z e (m) ;
n=lm ;

15
for i =1:n
for j =1:n−i
i f m( j )>m( j +1)
aux=m( j ) ;
m( j )=m( j +1);
m( j +1)=aux ;
end
end
end
d i s p l a y (m)

>> f=[7 8 9; 1 2 3; 4 5 6]

f =

7 8 9
1 2 3
4 5 6

>> ejercicio8 (f)


lm =

3 3

1 8 9
4 2 3
7 5 6

Explicación Mediante la función lo primero que realizo es definir el tamaño


de la matriz y luego agregar ese valor a una variable "n"luego con 2 ciclos for
inicializo y coloco en la columna deseada desde donde quiero que se ordene
la matriz en forma ascendente en el segundo for defino la posicion y en la
cual quiero que esten los valores de la columna.
subsection Dada una matriz MxN, ordenar descendentemente la última
fila de la matriz Código
function e j e r c i c i o 9 (M)

16
lM=s i z e (M) ;
N=sort ( (M( 3 , : ) ) , ’ descend ’ )
P=sort ( (M( 1 , : ) ) ) ;
Q=sort ( (M( 2 , : ) ) ) ;
f p r i n t f ( ’ l a ␣ m a t r i z ␣ con ␣ l a ␣ u l t i m a ␣ f i l a ␣ ordenada ␣ en ␣ forma ␣ d e s c e n d e n t e ␣ e s \n
d i s p l a y ( [ P ; Q ;N ] )

>> f=[7 8 9; 1 2 3; 4 5 6]

f =

7 8 9
1 2 3
4 5 6

>> ejercicio9 (f)


lM =

3 3

N =

6 5 4

la matriz con la ultima fila ordenada en forma descendente es


7 8 9
1 2 3
6 5 4

Explicación Mediante la función previamente presentada podemos ver que


primero creamos una matriz de nxm luego seleccionamos la fila que queremos
ordenar mediante el comando (3, :) seleccionando así la fila 3 de la matriz y la
ordenamos en forma descendente con el comando sort y finalmente llamamos
a esa matriz e imprimimos
Código
function e j e r c i c i o 1 0 (M)

17
lM=s i z e (M) ;
i f ( lM(1)==lM ( 2 ) )

d1=diag (M)
d2=sort ( d1 )
p=(M( 1 , 2 ) ) ;
q=(M( 1 , 3 ) ) ;
r =(M( 2 , 1 ) ) ;
s =(M( 2 , 3 ) ) ;
t =(M( 3 , 1 ) ) ;
u=(M( 3 , 2 ) ) ;
a=(M( 1 , 1 ) ) ;
b=(M( 2 , 2 ) ) ;
c=(M( 3 , 3 ) ) ;
%d i s p l a y (M=[0 p q ; r 0 s ; t u 0 ] ) ;
%d i s p l a y (N=[ a 0 0 ; 0 b 0 ; 0 0 c ] )
d2=sort ( [ a , b , c ] ) ;
M( 1 : 4 : 9 ) = d2

e l s e f p r i n t f ( ’ l a ␣ m a t r i z ␣ i n g r e s a d a ␣no␣ e s ␣nxn ’ )
end

>> f=[7 8 9; 1 2 3; 4 5 6]

f =

7 8 9
1 2 3
4 5 6

>> ejercicio10 (f)


lM =

3 3

18
d1 =

7
2
6

d2 =

2
6
7

d2 =

2 6 7

M =

2 8 9
1 6 3
4 5 7

Explicación Mediante la función vamos a realizar siempre y cuando la


matriz sea cuadrada entonces vamos a tomar su diagonal con el comando
d1 = diag(M ), a continuación se realiza el proceso de invertir esa diagonal
con el comando sort. Finalmente tomamos las posiciones (1:4:9) de la matriz
entonces colocamos nuestra d2.

19

Das könnte Ihnen auch gefallen