Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MATLAB
ENTRADA Y SALIDA DE INFORMACIÓN
5.1 OBJETIVOS
a) Diseñar programas sencillos, con la finalidad de comprender y analizar los pasos a seguir
para lograr una codificación adecuada para el buen funcionamiento de una aplicación.
b) Hacer uso de las sintaxis de entrada y salida de información en Matlab.
c) Conocer y aprender a trabajar con las operaciones y funciones básicas de matrices.
d) Manejar el condicional if de manera simple y anidada para dar solución a problemas simples
de programación.
Al combinar texto con valores numéricos con la función disp, es necesario el uso de la función
num2str( ) para los valores numéricos.
1
fprintf: Esta función muestra un mensaje o un resultado, permitiendo mezclar texto y valores
numéricos de las variables y también se puede ajustar el formato de los números
Ejemplo:
Si escribimos en un archivo m lo siguiente:
clc
clear
nom=input('deme su nombre ','s');
x=input('Ingrese un número ');
fprintf('%s el número ingresado es %g \n',nom,x)
fprintf('%s el número ingresado es %f \n',nom,x)
fprintf('%s el número ingresado es %e \n',nom,x)
fprintf('%s el número ingresado es %i \n',nom,x)
disp([ nom,' el número que ingresaste es ',num2str(x)])
2
5.2.2 Escritura de Matrices
Vectores
La matriz (array) es el tipo fundamental de dato en MatLab. La variable escalar es un caso
particular de matriz de dimensión 1×1. Los vectores son las matrices más simples: un vector
fila de m elementos es una matriz de dimensión m×1, un vector columna de n elementos es
una matriz de dimensión 1×n.
En muchos lenguajes, el primer elemento de un vector (array) tiene índice cero, en MatLab
tiene índice uno.
Para crear un vector fila se escribe sus >> r=[5 3 -5] >> r=[5,3,-5]
elementos unos a continuación de los otros r=5 3 -5 r=5 3 -5
separados por espacios o comas, y entre
paréntesis cuadrados
Para crear un vector columna se escribe los >> r=[5; 3; -5]; >> r=[5
elementos unos a continuación de los otros r= 3
separados por puntos y comas o bien, en 5 -5]
forma columna 3
5
Se puede convertir, un vector fila en vector >> r=[1,2,3]'
columna mediante el operador transpuesto' r = 1
2
3
Un vector con un espaciado >> x=3:2:15
constante Δx entre el primer x = 3 5 7 9 12 15
término, xi y el último término, xf., >> y=2:-0.2:1
se crea del siguiente modo: y = 2.0000 1.8000 1.6000 1.4000 1.2000 1.0000
Vector = xi : Δx : xf >> z=-5:3 % el espaciado por defecto es 1
y = -5 -4 -3 -2 -1 0 1 2 3
Un vector fila tiene la forma [r1r2r3 ....rn]. Para >> r=[5 3 -5];
acceder a un elemento i del vector r, ri se escribe r(i). >> r(1)
Para acceder al primer elemento se escribe r(1). Para ans =5
acceder al último se escribe r(end). >> r(end)
La función length devuelve el número de elementos ans =-5
del vector >> length(r)
ans = 3
3
Con el operador : se puede acceder a más de
un elemento del vector. Cuando se escribe >> v=[4 10 -3 7 -1 0 8 13 -7 0];
v(m:n) se accede a los elementos del vector v
desde la posición m hasta la n. Es la forma de >> u=v(3:7)
extraer un vector de otro vector. Por ej., crear
un vector u con los elementos comprendidos u= -3 7 -1 0 8
entre las posiciones 3 y 7 ambas incluidas, de
un vector v que tiene 10 elementos
Crear un vector u con los elementos de índice >> v=[4 10 -3 7 -1 0 8 13 -7 0];
par del vector v. >> u=v(2:2:end)
u = 10 7 0 13 0
Se puede también crear un vector u a partir de >> v=[4 10 -3 7 -1 0 8 13 -7 0];
otro vector de subíndices. Por ejemplo, crear >> u=v([5 1 4 8])
un vector u tomando el elemento quinto, u = -1 4 7 13
primero, cuarto y octavo elemento del vector
v, en este orden
Se pueden añadir >> v=1:4
elementos a un vector v = 1 2 3 4
de la siguiente forma: >> v(5:10)=7:3:22
v= 1 2 3 4 7 10 13 16 19 22
>> v(12)=-1
v= 1 2 3 4 7 10 13 16 19 22 0 -1
Si se sobrepasa la dimensión del vector que era 10, y se le añade el elemento de índice 12, al
elemento de índice 11 se le asigna automáticamente cero.
4
Operaciones con vectores
Suma de un escalar y un vector: >> x=[1,2,3];
>> x+5
ans = 6 7 8
Producto de un escalar por un vector: >> u=[1,2,3];
>> u*3
ans = 3 6 9
Calcular la raíz cuadrada de un conjunto de datos: >> x=[4 9 16 25];
>> u=sqrt(x)
u= 2 3 4 5
>> 3*u-2
ans = 4 7 10 13
Suma de dos vectores: >> u=[1,2,3];
Los vectores con el mismo número de elementos >> v=[4,5,6];
se pueden sumar o restar. >> u+v
ans = 5 7 9
Producto escalar de dos vectores: >> u = [5 6 7];
El producto escalar se obtiene multiplicando el >> v = [4 3 2];
vector fila u por el vector columna v. >> dot(u,v)
MATLAB dispone de la función dot(u,v) para ans = 52
calcular el producto escalar de dos vectores u y v. >> u*v'
ans = 52
5
Operaciones elemento a elemento
Existen muchas situaciones en las que se >> u=[1,2,3];
requieren operaciones elemento a elemento >> v=[4,5,6];
similar a las que se lleva a cabo con la suma o la >> u.*v
diferencia de dos vectores de las mismas ans = 4 10 18
dimensiones
En MATLAB, podemos utilizar las operaciones >> x=[0,1,-1,2,-3,4];
elemento a elemento para evaluar una función >> y=2*x.^2-3
para un conjunto de valores de la variable x y = -3 -1 -1 5 15 29
6
Suma y Producto de los elementos de un vector
La suma sum(u) de los elementos de un vector u >> s=sum(1:5)
es un escalar. La suma acumulada cumsum(u) de s = 15
un vector u es otro vector s cuyos elementos son >> fact=prod(1:5)
s(k) k=1...N fact = 120
El producto prod(u) de los elementos de un >> cumsum(1:5)
vector u es un escalar. El producto acumulado ans = 1 3 6 10 15
cumprod(u) de un vector u es otro vector p cuyos >> cumprod(1:5)
elementos son p(k) k=1...N ans = 1 2 6 24 120
Máximo y mínimo
Para obtener el máximo valor de los >> x=[0,0.38,0.71,0.92,1.00,0.92,0.71,0.38,0];
elementos de un vector >> [xmax, nmax]=max(x)
La función max nos devuelve dos datos, xmax = 1
el valor máximo xmax y el índice nmax nmax = 5
del elemento del vector que guarda el >> x(5)
máximo. Vemos que el quinto elemento ans = 1
del vector x guarda el máximo valor 1.0.
Matrices
Una matriz A de m filas y n columnas o Para acceder a un elemento situado en la fila i y en
de dimensión m×n se representa por: la columna j, Aij, se escribe A(i,j). La función size
devuelve dos números que corresponden a las
a(1,1) a(1,2) a(1,3) a(1,4) dimensiones de la matriz.
a(2,1) a(2,2) a(2,3) a(2,4)
𝐴 = [a a(3,2) a(3,3) a(3,4) ]
(3,1)
a(4,1) a(4,2) a(4,3) a(4,4)
7
Creación de una matriz
Se puede crear una matriz de 3×2, de dos formas distintas
>> A=[1 2 3 % de esta forma >> B=A' % B es la matriz
4 5 6]; traspuesta de A
>> A=[1 2 3; 4 5 6] % o de esta otra forma B=
A= 1 4
1 2 3 2 5
4 5 6 3 6
>> A(2,2) % elemento de la fila 2 columna 2 >> size(B)
ans = 5 ans = 3 2
>> size(A) % la matriz A (2 filas, 3 columnas)
ans = 2 3
8
Un vector se puede convertir en una matriz A=
diagonal mediante diag. 1 0 0
>> x=[1,2,3]; 0 2 0
>> A=diag(x) 0 0 3
Matrices predefinidas
La función zeros(m,n) crea una matriz de >> y=zeros(3)
dimensión m×n cuyos elementos son todos ceros. y=
0 0 0
La función ones(m,n) crea una matriz de dimensión 0 0 0
m×n cuyos elementos son todos unos. 0 0 0
>> y=zeros(3,1)
La función eye(n) crea una matriz cuadrada de y=
dimensión n×n en la cual, los elementos de la 0
diagonal son unos y el resto de los elementos son 0
ceros, es decir, crea la matriz identidad de 0
dimensión n. >> eye(3)
ans =
Por ejemplo, zeros(n) reserva espacio para una 1 0 0
matriz cuadrada de dimensión n×n. Lo mismo 0 1 0
ocurre con ones(n) 0 0 1
9
ans = ans =
9 10 11 12 2 3 4
6 7 8
10 11 12
10
a(1,1) a(1,2) a(1,3) b(1,1) b(1,2)
𝐴 = [a a(2,2) a(2,3) ]
(2,1) 𝐵 = [b(2,1) b(2,2) ]
b(3,1) b(3,2)
(a(1,1) b(1,1) + a(1,2) b(2,1) + a(1,3) b(3,1) ) (a(1,1) b(1,2) + a(1,2) b(2,2) + a(1,3) b(3,2) )
𝐴=[ ]
(a(2,1) b(1,1) + a(2,2) b(2,1) + a(2,3) b(3,1) ) (a(2,1) b(1,2) + a(2,2) b(2,2) + a(2,3) b(3,2) )
a(1,1) b(1,1) a(1,2) b(1,2) a(1,3) b(1,3) a(1,1) /b(1,1) a(1,2) /b(1,2) a(1,3) /b(1,3)
𝐴.∗ 𝐵 = [a(2,1) b(2,1) a(2,2) b(2,2) a(2,3) b(2,3) ] 𝐴./𝐵 = [a(2,1) /b(2,1) a(2,2) /b(2,2) a(2,3) /b(2,3) ]
a(3,1) b(3,1) a(3,2) b(3,2) a(3,3) b(3,3) a(3,1) /b(3,1) a(3,2) /b(3,2) a(3,3) /b(3,3)
11
5.2.3 Sentencias condicionales
Una sentencia condicional es una instrucción MATLAB que permite tomar decisiones sobre si
se ejecuta un grupo de comandos que cumplen una condición o, por el contrario, omitirlos.
Si la condición (una expresión lógica) es verdadera, se ejecutan las sentencias y sigue a end.
12
5.2.3.2 La instrucción if-else-end
El if simple le permite ejecutar una serie de enunciados si una condición es verdadera y saltar
dichos pasos si la condición es falsa.
La cláusula else le permite ejecutar un conjunto de enunciados si la comparación es verdadera
y un conjunto diferente de enunciados si la comparación es falsa.
If condición1 clc;clear
Bloque1 x = input('Ingrese un valor para calcular su logaritmo: ') ;
else if x >0
Bloque2 y=log(x);
end fprintf('\n El logaritmo de %f es %f. \n',x,y);
else
beep
disp('La entrada a la función log debe ser positiva')
end
clc;clear
If condición1 disp('trámite para licencia de conducir')
Bloque1 edad= input('Ingrese su edad: ') ;
elseif if edad>=0 & edad<16
Bloque2 disp('No cumple la mayoría de edad')
else elseif edad<18
Bloque3 disp('Permiso provisional para conducir')
End elseif edad<=70
disp('Licencia estándar')
else
disp('Mayores de 70 Licencia especial')
end
Se puede introducir más de una sentencia elseif y por tanto asociar nuevos grupos de
instrucciones que se ejecutarán o no dependiendo de las condiciones establecidas.
La sentencia else es opcional. Esto significa que en el caso de que haya varios elseif y ningún
else, si alguna condición de los elseif es verdadera, los comandos serán ejecutados, pero en
otro caso (si todas las condiciones de los elseif son falsas) no se ejecutan ni se realizará
ninguna operación.
13
5.3 PRE-LABORATORIO
14
Ejecute el archivo m y debe dar una salida en la ventana Command Window similar
a la siguiente:
15
2. Elabore un archivo m (Nombre del archivo: Carr_ClaveUnica_Pre5_2)
Crear un vector y que contenga los múltiplos de 3 entre 6 y 36, ambos inclusive.
Crear una matriz A de 3×2 y una matriz B de 2×3 con los vectores
u=[1,0,-3]; v=[4, 1,- 2];
1 0 −6 1 3 5 7 9 11
2 0 −4 0 5 10 15 20 25
𝐵=[ ]
𝐴= 3 0 −2 10 20 30 40 50 60
4 0 0 −6 −4 −2 0 2 4
[5 0 2]
16
17
Ejecute el archivo m y debe dar una salida en la ventana Command Window
similar a la siguiente:
18
3. Elabore un archivo m (Nombre del archivo: Carr_ClaveUnica_Pre5_3)
Ejecútelo para diferentes casos, sexo, F, sexo f, sexo M, sexo m, y distintos años de
ingreso a la universidad. Y analice el funcionamiento del programa.
19
5.4 DESARROLLO DE LA PRACTICA
Sea la matriz
0 2 3 4 2
𝐴 = [−2 3 −1 5 1]
0 2 −4 −3 1
20
Ejecute el archivo m y debe dar una salida en la ventana Command Window similar
a la siguiente:
21
22
Operaciones con Submatrices
2 3 2 17
𝑥 = [5 8 3 1] 𝑦 = [ 4 6 22] 𝑧=[3]
17 4 12 6
Ejecute el archivo m y debe dar una salida en la ventana Command Window similar
a la siguiente:
23
24
3. Elabore un archivo m (Nombre del archivo: Carr_ClaveUnica_Dprac5_3)
𝝅
Dibujar las gráficas de las funciones 𝒚 = 𝒔𝒆𝒏(𝒙) y 𝒛 = 𝒔𝒆𝒏(𝒙 + 𝟑 ) en la misma figura
25
5.5 POST-LABORATORIO
Comprobar que
sin 𝑥
lim =1
𝑥→∞ 𝑥
Establecer el formato largo para expresar los números con 15 decimales (format long)
Crear un vector x cuyos elementos son 1, 0.1, 0.01, 0.001, 0.0001, 0.000001 y calcular el
cociente sin(x)/x.
26
2. Elabore un archivo m (Nombre del archivo: Carr_ClaveUnica_Post5_2)
27
3. Elabore un archivo m (Nombre del archivo: Carr_ClaveUnica_Post5_3)
Nota: para el cálculo del año, utilizar el comando clock visto en el ejercicio Pre5_3
tiempo utilidad
Menos de un año 5% del salario
1 año o más y menos de 2 años 7% del salario
2 años o más y menos de 5 años 10% del salario
5 año o más y menos de 10 años 15% del salario
10 años o mas 20% del salario
28