Está en la página 1de 25

04. Archivos m. Lic.

Amado Malca Villalobos

Archivos m.
En el momento de ejecutar una aplicación en alguna área de interés, a veces es necesario
realizar varias secuencias de algunas operaciones, algunas de ellas en forma repetida, lo
cual resulta sumamente tedioso. Lo cual puede ser hecho por un programa , que desde
luego debe estar bien estructurado, y entendible por la computadora. Para ello se usan
los ficheros script, también llamado archivos .m
Un fichero script es un conjunto de sentencias u órdenes que se ejecutan en forma
secuencial. En algunos casos debido a la estructura misma del programa se llamara
función.
Para que estos programas sean coherentes y los pueda leer el programa Matlab, deben
seguir un orden lógico. Estos ficheros tienen extensión m. y se pueden editar y/o
ejecutar las veces que sea necesario.
En algunos casos es necesario que el programador ingrese algunos datos para que el
programa funcione. Estos deberán ser ingresados por teclado posiblemente, y en algún
formato adecuado. Para esto hay comandos adecuados.

Notas sobre los ficheros script


- Un fichero script es una secuencia de comandos de MatLab, también denominado
programa.
- Cuando se ejecuta un fichero script, MatLab ejecuta los comandos en el orden en que
éstos han sido escritos, igual que si se ejecutaran uno a uno en la ventana de
comandos.
- Cuando un fichero script contiene un comando que produce una salida o resultado
(ejemplo una asignación de variable sin un punto y coma al final), la salida se visualiza
en la ventana de comandos.
- La utilización de ficheros script es conveniente, ya que estos pueden ser editados (es
decir se pueden corregir o modificar), y se pueden ejecutar tantas veces como se
quiera.
- Los ficheros script se pueden crear y editar en cualquier editor de texto. Asimismo el
texto se puede copiar y pegar desde estos editores a MatLab para ser ejecutado.
Los ficheros script también de denominan ficheros M, ya que la extensión .m es la que
utiliza y reconoce MatLab cuando se guardan estos archivos.
- Un fichero script se puede ejecutar, bien tecleando su nombre en la Ventana de
Comandos (y pulsando la tecla enter) o bien desde la ventana del editor a través del
icono Run (ejecutar).
- Estos programas siempre deben estar en el directorio actual de MatLab, para poder
ejecutarse. Que se puede ver en la siguiente figura

04 archivos .m 1
04. Archivos m. Lic. Amado Malca Villalobos

Ordenes útiles para carpetas


Como ya se ha dicho, si el archivo de texto no se graba en la carpeta de trabajo de
MATLAB no podrá ser ejecutado. Conviene tener ciertas herramientas que ayuden a
comprobar esta situación.

_ Para comprobar los archivos .m que tiene en la carpeta de trabajo de MATLAB


pruebe la orden what.
_ Para saber la carpeta de trabajo que MATLAB está usando existe la orden pwd.
_ Para saber la lista de todos los archivos en la carpeta de trabajo de MATLAB pruebe
la orden dir. Aparecerán los archivos de tipo .m y también los de otros tipos.
- Con el comando cd, se muestra el directorio de trabajo actual.

>> what
M-files in the current directory C:\Users\Malca\Documents\MATLAB
DistPaL curva3d05 datos prom
curva3d01 curva3d06 dfun prom_2
curva3d02 curvar3 ejemplo01 prom_3
curva3d03 curvasR3 ejemplo4_2 prommult5
curva3d04 curvatemp fun solcuad
>> pwd
ans = C:\Users\Malca\Documents\MATLAB
>> dir
. curva3d04.m datos.asv prom.m
.. curva3d05.m datos.m prom_2.m
DistPaL.asv curva3d06.m datos.xlsx prom_3.m
DistPaL.m curvar3.asv datos_lluvia.xls prommult5.m
curva3d01.m curvar3.m dfun.m solcuad.m
curva3d02.m curvasR3.asv ejemplo01.m
curva3d03.asv curvasR3.m ejemplo4_2.m
curva3d03.m curvatemp.asv fun.asv
curva3d04.asv curvatemp.m fun.m
>> cd
C:\Users\Malca\Documents\MATLAB

04 archivos .m 2
04. Archivos m. Lic. Amado Malca Villalobos

Ahora crearemos un programa, para ello abriremos un archive Nuevo, de tipo m-file,
segun lo indicado en los siguientes graficos.

Ejemplo: Resolver la ecuación cuadrática 5x2 - 8x + 4 = 0

Para ello lo primero a hacer es abrir un archivo m, e ir escribiendo en el. La primera


parte comprende un breve comentario sobre lo que hace el programa, estas líneas
siempre van precedidas del símbolo de porcentaje (%), lo cual le indica a MatLab que
no debe ejecutarse.
Si queremos visualizar ello basta con llamar al programa precedido del comando help.

solcuad.m Ejecucucion
% programa que resuelve una >> solcuad
ecuación cuadrática sol_1 = 1.2899

04 archivos .m 3
04. Archivos m. Lic. Amado Malca Villalobos

% 5x2-8x+2=0 sol_2 = 0.3101


>> help solcuad
sol_1=(8+sqrt(8^2-4*5*2))/10 programa que resuelve una
sol_2=(8-sqrt(8^2-4*5*2))/10 ecuación cuadrática
5x2-8x+2=0
>>

Ejemplo: En el siguiente caso se construirá una función, la cual tiene una pequeña
diferencia en su estructura que contiene una línea adicional, que será explicada con
mayor detalle en el siguiente acápite.
Se creara la función: y = f (x)= x3 + 5x2 - 8x + 4 . Luego de lo cual se podrá evaluar,
graficar y hacer algunas cosas más propias de las funciones matemáticas.

fun.m Ejecucucion
function y=fun(x) >> fun(3),fun(1),fun(7),fun(13)
ans = 34
% programa que calcula el valor ans = 0
de ans = 438
% una función dado el valor de x. ans = 2604
>>
y=x.^3+3*x.^2-8*x+4; >> x=-6:0.1:5;
>> y=fun(x);
>> plot(x,y)
>>
>> help fun
programa que calcula el valor de
una función dado el valor de x.
>>

04 archivos .m 4
04. Archivos m. Lic. Amado Malca Villalobos

200

150

100

50

-50

-100
-6 -4 -2 0 2 4 6

Grafico de la función en el intervalo [-6, 6]

Vista de la ventana de comandos en MatLab, del archivo m, y del grafico de la función.

VARIABLES GLOBALES
Recuerde que las variables escritas en un archivo script (programa), se ejecutan como si
estuvieran en la ventana de comandos, salvo las que están en un ficheros tipo fuction.
Cuando se ejecuta un fichero script, las variables utilizadas en los cálculos dentro del
fichero deben tener valores asignados previamente en el mismo script. Esta asignación
se puede hacer de tres formas:
- Variable definida y asignada en el fichero script.
- Variable definida y asignada en la ventana de comandos.
- Variable definida y asignada en el fichero script, pero luego se cambia en la
ventana de comandos

04 archivos .m 5
04. Archivos m. Lic. Amado Malca Villalobos

Variable definida y asignada en el fichero script.


La asignación de la variable forma parte del fichero, Si se quiere cambiar el valor
simplemente se edita el fichero y se guarda los cambios.

Ejemplo: Ahora presentaremos un programa que halla el puntaje promedio de varias


jugadas en un casino.
prom.m Ejecución
% este programa calcula el >> prom
promedio Puntuacion_Media =
% de un conjunto de jugadas 82.5000
j1=80; >> help prom
j2=85; este programa calcula el
j3=75;
promedio
j4=90;
de un conjunto de jugadas
Puntuacion_Media=(j1+j2+j3+j4)/4
>>

04 archivos .m 6
04. Archivos m. Lic. Amado Malca Villalobos

Variable definida y asignada en la ventana de comandos.


En este caso el o los valores de la variable se indican en la ventana de comandos, y
luego se ejecuta el programa. Aquí los valores de las variables solo se cambian en la
ventana de comandos.

Ejemplo: El programa requerido es el mismo anterior, hallaremos el puntaje promedio


de varias jugadas en un casino. Pero los valores se ingresaran por teclado.

Prom_2.m
% Calculo del promedio de cuatro jugadas
% los valores se ingresan por la ventana de
comandos
% con las variables j1, j2, j3 y j4

Puntuacion_Media=(j1+j2+j3+j4)/4
Ejecución en MatLab
>> clear % para limpiar memoria de variables pre asignadas
>> prom_2
??? Undefined function or variable
'j1'.
Error in ==> prom_2 at 5
Puntuacion_Media=(j1+j2+j3+j4)/4
>> j1=87, j2=90, j3=86, j4=64 % corrigiendo el problema de las variables
j1 = 87
j2 = 90
j3 = 86
j4 = 64
>> prom_2
Puntuacion_Media = 81.7500
>> help prom_2
Calculo del promedio de cuatro jugadas
los valores se ingresan por la ventana de comandos
con las variables j1, j2, j3 y j4

Variable definida y asignada en el fichero script, pero luego se cambia en la


ventana de comandos. Comando input
En esta opción la variable se define en el fichero script, y cuando se ejecuta tal archivo
al usuario se le pide un valor concreto a través de la ventana de comandos, y a estas
variables se les asigna el valor correspondiente.
Esto se hace con el comando input. Cuya sintaxis es:

æ' mensaje que se muestra ö ÷


nombre _ var iable = input çç ÷
÷
çèen la ventana de comandos 'ø
÷

Al ejecutar este comando se muestra en la ventana de comandos el mensaje indicado,


luego del cual el usuario ingresara el valor de la variable en forma adecuada.

04 archivos .m 7
04. Archivos m. Lic. Amado Malca Villalobos

Ejemplo: Igual al caso anterior, se hallara el valor promedio de un conjunto de puntajes


de jugadas en un casino.

Prom_3.m
% este programa calcula el promedio
% de un conjunto de tres jugadas
% las cuales se ingresan en la ventana de
comandos
% usando el comando input
j1=input('Ingrese la primera puntuación:')
j2=input('Ingrese la segunda puntuación:')
j3=input('Ingrese la tercera puntuación:')
j4=input('Ingrese la cuarta puntuación:')
Puntuacion_Media=(j1+j2+j3+j4)/4
Ejecucion en MatLab
>> prom_3
Ingrese la primera puntuacion:87
j1 = 87
Ingrese la segunda puntuacion:98
j2 = 98
Ingrese la tercera puntuacion:67
j3 = 67
Ingrese la cuarta puntuacion:82
j4 = 82
Puntuacion_Media = 83.5000
>> help prom_3
este programa calcula el promedio
de un conjunto de tres jugadas
las cuales se ingresan en la ventana de comandos
usando el comando input
>>

COMANDO DE INGRESO DE DATOS:


Un dato cualquiera o una matriz puede ingresarse mediante el teclado a pedido de algún
programa, los llamados archivos ****.m, mediante el comando: input
Hay dos tipos de objetos que ingresan por teclado, numéricos (Matriz) o como una
cadena de letras y/o símbolos (String).
Los formatos son:
x=input('comentario: ')
x=input('comentario: \n')
o tambien:
x=input('ingrese su nombre: ','s')
x=input('ingrese su nombre: \n ','s')

En el primer caso aparecerá el comentario en la pantalla, y la matriz ingresada se


asignara a la variable x.
En el segundo la diferencia está en que el cursor para ingresar la información pasa a la
siguiente línea.

04 archivos .m 8
04. Archivos m. Lic. Amado Malca Villalobos

En el tercer caso aparecerá el comentario en la pantalla, y se asignara a la variable x. La


diferencia está en que en el tercer caso la variable no solo puede ser una matriz sino
también una cadena de caracteres cualesquiera.
En el cuarto caso, al igual que el segundo, el cursor para ingresar la información pasa a
la siguiente línea.

Ahora veamos algunos ejemplos:

>> A=input('ingrese su edad: ');


ingrese su edad: 46
A = 46
>> A=input('ingrese su edad: ');
ingrese su edad: 25
>> A=input('haga su pregunta: ','s');
haga su pregunta: que es la matemática
A = que es la matemática
>> A=input('ingrese su edad:\n');
ingrese su edad:
45
>> A=input('Estado civil:\n','s');
Estado civil:
Soltero

COMANDOS DE SALIDA DE DATOS


La salida en pantalla de los resultados de un programa se hace de diferentes maneras.
Algunos se realizan por defecto como el resultado de alguna operación. Otra opción es
con los comandos:
disp fprintf
Comando disp
El formato de disp es:
disp(‘comentario’)
disp(variable)
en el primer caso la salida es algún comentario, en el segundo se imprime en pantalla
una variable.

Ejemplo:
>> disp('Hola a todos')
Hola a todos
>> A=[1 7 -2;4 -5 6;8 5 -9]
A=
1 7 -2
4 -5 6
8 5 -9
>> disp(A)
1 7 -2
4 -5 6
8 5 -9
>> disp('La matriz buscada es:')

04 archivos .m 9
04. Archivos m. Lic. Amado Malca Villalobos

La matriz buscada es:


>> disp(A)
1 7 -2
4 -5 6
8 5 -9
>> B=[1 7 -2]
B = 1 7 -2
>> disp(['la matriz buscada es:',num2str(B)])
la matriz buscada es:1 7 -2
>>

Ejemplo:
>> x=[1:10]';
>> P=[x x.^2 x.^3];
>> disp(' numero cuadrado cubo'),disp(P)
numero cuadrado cubo
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
8 64 512
9 81 729
10 100 1000
>>

Ejemplo
>> disp(['La ','matemática ','es ','la ','madre ','de ','todas ','las ','ciencias'])
La matemática es la madre de todas las ciencias
>> disp(['La','matematica','es','la','madre','de','todas','las','ciencias'])
Lamatematicaeslamadredetodaslasciencias
>> disp(['La ','matemática ','es ','la ','madre ','de ','todas ','las ','ciencias'])
La matemática es la madre de todas las ciencias
>> disp(['Aritmetica';'Algebra';'Geometria';'Analisis';'Discreta'])
??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
>> disp(['Aritmetica';'Algebra ';'Geometria ';'Analisis ';'Discreta '])
Aritmetica
Algebra
Geometria
Analisis
Discreta
>>
En la última línea de los comandos las palabras debían tener la misma longitud, de 10
letras, incluyendo espacios.

04 archivos .m 10
04. Archivos m. Lic. Amado Malca Villalobos

Ejemplo: En este programa hallaremos el promedio de los primeros 20 enteros


positivos múltiplos de 5.
Solución:
Prommult5.m
% en el ejemplo se crea un vector
% con los 20 primeros múltiplos de 5
% y luego se halla el promedio de ellos
r=[1:20];
z=5*r;
disp('Los veinte múltiplos de 5, son:')
disp(z)
disp(' ')
disp('el valor promedio es')
prom=sum(z)/norm(z);
disp(prom)
Ejecución en MatLab:
>> prommult5
Los veinte múltiplos de 5, son:
Columns 1 through 12
5 10 15 20 25 30 35 40 45 50 55 60
Columns 13 through 20
65 70 75 80 85 90 95 100

el valor promedio es
3.9199
>>

Ejemplo: Mostrar una tabla con los n primeros enteros positivos, sus cuadrados y sus
cubos.
Solución:
Ejemplo4_2.m
% Este programa crea una tabla de los
primeros n números enteros positivos
% sus cuadrados y sus cubos
n=[1:5]';
cuadrado=n.^2;
cubo=n.^3;
disp(' n n^2 n^3')
tabla=[n,cuadrado,cubo];
disp(tabla)
Ejecución en MatLab:
>> ejemplo4_2
n n^2 n^3
1 1 1
2 4 8
3 9 27
4 16 64

04 archivos .m 11
04. Archivos m. Lic. Amado Malca Villalobos

5 25 125

El comando fprintf
Este comando visualiza salidas de programas en la pantalla, a diferencia del disp., aquí
se puede dar algún formato a la presentación de los datos.
Visualizando mensajes de texto:
fprintf(‘Mensaje en forma de cadena’)

ejemplo02.m
%ahora tenemos un programa que
obtiene cuadrados y cubos
n=[1:5]';
cuadrado=n.^2;
cubo=n.^3;
disp(' n n^2
n^3')
tabla=[n,cuadrado,cubo];
disp(tabla)
fprintf('ahi tenemos la relación de
cuadrado y cubos')

Ahora viene la ejecución, en la ventana de comandos


de Matlab:
>> prog01
n n^2 n^3
1 1 1
2 4 8
3 9 27

ahi tenemos la relación de cuadrado y cubos >>

Caracteres especiales usados


Símbolo Descripción
\n Carácter de escape, se empieza una nueva línea.
\b Carácter de borrado
\t Tabulación horizontal

Ahí va un ejemplo de uso de estos caracteres especiales,


escribiremos:
Las matrices, son el objeto fundamental del MatLab
>> fprintf('Las matrices,\n son el objeto fund\bamen\btal
del Mat\t\tlab\n');
Las matrices,
son el objeto funametal del Mat lab
>>

04 archivos .m 12
04. Archivos m. Lic. Amado Malca Villalobos

El comando fprintf para la visualización de datos y texto juntos


fprintf(‘Texto %-5.2f texto adicional’, nombre_variable)

Los elementos del formato para los datos, son cuatro algunos opcionales otros
obligatorios: -5.2f
El primero llamado flag o bandera (opcional)
Símbolo Descripción
- Justificación izquierda dentro del campo
+ Visualiza el carácter del signo (+ ó -) delante del
numero
0 Añade ceros si el numero es más pequeño que
el campo

Lo segundo es el ancho del campo, que corresponde al primer número (5 en el


ejemplo),el cual nos indica el menor número de dígitos de la visualización. (Opcional)

El tercero es corresponde a la precisión, lo cual indica el numero de dígitos que se


mostraran a la derecha del punto decimal. (Opcional)

El cuarto elemento es el que corresponde al formato de conversión (f en el ejemplo).


Es obligatorio, las opciones son:
Símbolo Descripción
e Notación exponencial en minúsculas (ej:
2.456e+002)
E Notación exponencial en mayúsculas (ej:
2.456E+002)
f Notación de punto fijo (ej: 245.6)
g Representación en formato corto de e o f
G Representación en formato corto de E o f
i Entero
Ejemplo:
ej03.m
% tenemos un conjunto de doce datos de lluvia en miles de litros,
en forma
% mensual. En la amazonia peruana
%p representa el valor promedio de las lluvias
D=[286 253 254 305 274 203 165 190 161 228 224
280]
P=mean(D)
fprintf('\nEl valor medio de las lluvias es %6.2e mensual.\n',P)
fprintf('\nEl valor medio de las lluvias es %-16.2f mensual.\n',P)
fprintf('\nEl valor medio de las lluvias es %08i mensual.\n',P)
fprintf('\nEl valor medio de las lluvias es %6g mensual.\n',P)
La ejecución en MatLab
>> ej03
D = 286 253 254 305 274 203 165 190 161 228 224

04 archivos .m 13
04. Archivos m. Lic. Amado Malca Villalobos

280
P = 235.2500
El valor medio de las lluvias es 2.35e+002 mensual.
El valor medio de las lluvias es 235.25 mensual.
El valor medio de las lluvias es 2.352500e+002 mensual.
El valor medio de las lluvias es 235.25 mensual.
>>

Aquí va un ejemplo en el cual hay insertados varios valores numéricos, dentro del
texto.
ej04.m
% tenemos un conjunto de doce datos de lluvia en miles de litros,
en forma
% mensual. En la amazonia peruana
%p representa el valor promedio de las lluvias
D=[286 253 254 305 274 203 165 190 161 228 224
280]
m=min(D);
M=max(D);
S=sum(D);
P=mean(D);
fprintf('\nEl valor medio de las lluvias es %6.2e mensual.\n',P)
fprintf('\nEl valor mínimo es %4i , el máximo es %4i y el total de
lluvias es %6i.\n',m,M,S)

La ejecución en Matlab
>> ej04
D = 286 253 254 305 274 203 165 190 161 228 224
280
El valor medio de las lluvias es 2.35e+002 mensual.

El valor mínimo es 161 , el máximo es 305 y el total de lluvias es


2823.
>>

Presentación de arrays (Matrices)


ej05.m
%ahora presentaremos una matriz
%donde
%fila uno: números naturales
%fila dos: el cuadrado
%fila tres: la raíz cuadrada
x=[1:8];
y=x.^2;
z=sqrt(x);
w=[x;y;z]
fprintf('el numero %i su cuadrado %i su raíz %f\n',w)
La ejecución en MatLab

04 archivos .m 14
04. Archivos m. Lic. Amado Malca Villalobos

>> ej5
w=
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000
8.0000
1.0000 4.0000 9.0000 16.0000 25.0000 36.0000 49.0000
64.0000
1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 2.6458
2.8284
el numero 1 su cuadrado 1 su raíz 1.000000
el numero 2 su cuadrado 4 su raíz 1.414214
el numero 3 su cuadrado 9 su raíz 1.732051
el numero 4 su cuadrado 16 su raíz 2.000000
el numero 5 su cuadrado 25 su raíz 2.236068
el numero 6 su cuadrado 36 su raíz 2.449490
el numero 7 su cuadrado 49 su raíz 2.645751
el numero 8 su cuadrado 64 su raíz 2.828427
>>

Ejemplo adicional
ej06.m
% archivo ejecutable de nombre: ejem06.m
% uso de los comandos de entrada por teclado, y salida por
pantalla.

nombre=input('cual es tu nombre: ','s');


apellidos=input('tus apellidos son:\n','s');
n=input('de que orden son las matrices cuadradas A y B:\n');

A=input('ingrese la matriz A :\n')


B=input('ingrese la matriz B :\n')
disp('la suma A+B, la resta A-B es :')
disp(A+B),disp(A-B)
disp('El producto A*B, la division A/B es :')
disp(A*B),disp(A/B)

temp=[25.6 33.7 34.1 35.6 36.8]


fprintf('la temperatura en la mañana es %e grados F \n',temp)
fprintf('la temperatura en la mañana es %f grados F \n',temp)
fprintf('la temperatura en la mañana es %g grados F \n',temp)
fprintf('la temperatura en la mañana es \n %g grados F \n',temp)

w=[1:10;sqrt(1:10)]
fprintf('Un entero es %g y su raíz cuadrada es %g \n',w)

z=[1:10;sqrt(1:10);(1:10).^2;(1:10).^3]
fprintf(' n=%g sqrt(n)=%g n^2=%g n^3=%g \n',z)

z=[1000555:1000560;sqrt(1000555:1000560)]
fprintf('n=%2.3g sqrt(n)=%1.10g\n',z)

04 archivos .m 15
04. Archivos m. Lic. Amado Malca Villalobos

fprintf('n=%2.6g sqrt(n)=%1.10g\n',z)
fprintf('n=%2.6g sqrt(n)=%4.10g\n',z)

La ejecución en Matlab
>> malca
cual es tu nombre: amado
tus apellidos son: malca villalobos
de que orden son las matrices cuadradas A y B: 4
ingrese la matriz A : [1 2 3 4;3 5 1 7;6 1 3 5;7 0 5 1]
A=
1 2 3 4
3 5 1 7
6 1 3 5
7 0 5 1
ingrese la matriz B : [9 2 3 4;3 5 8 7;1 1 3 5;7 0 5 0]
B=
9 2 3 4
3 5 8 7
1 1 3 5
7 0 5 0
la suma A+B, la resta A-B es :
10 4 6 8
6 10 9 14
7 2 6 10
14 0 10 1

-8 0 0 0
0 0 -7 0
5 0 0 0
0 0 0 1
El producto A*B, la division A/B es :
46 15 48 33
92 32 87 52
95 20 60 46
75 19 41 53

0.0698 0.3101 0.3101 -0.1240


1.1395 0.6202 -0.3798 -1.2481
0.5814 -0.1938 0.8062 0.0775
0.0504 -0.0724 0.2610 0.9289

temp = 25.6000 33.7000 34.1000 35.6000 36.8000

la temperatura en la mañana es 2.560000e+001 grados F


la temperatura en la mañana es 3.370000e+001 grados F
la temperatura en la mañana es 3.410000e+001 grados F
la temperatura en la mañana es 3.560000e+001 grados F
la temperatura en la mañana es 3.680000e+001 grados F
la temperatura en la mañana es 25.600000 grados F
la temperatura en la mañana es 33.700000 grados F

04 archivos .m 16
04. Archivos m. Lic. Amado Malca Villalobos

la temperatura en la mañana es 34.100000 grados F


la temperatura en la mañana es 35.600000 grados F
la temperatura en la mañana es 36.800000 grados F
la temperatura en la mañana es 25.6 grados F
la temperatura en la mañana es 33.7 grados F
la temperatura en la mañana es 34.1 grados F
la temperatura en la mañana es 35.6 grados F
la temperatura en la mañana es 36.8 grados F
la temperatura en la mañana es
25.6 grados F
la temperatura en la mañana es
33.7 grados F
la temperatura en la mañana es
34.1 grados F
la temperatura en la mañana es
35.6 grados F
la temperatura en la mañana es
36.8 grados F

w= Columns 1 through 10
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000
8.0000 9.0000 10.0000

1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 2.6458


2.8284 3.0000 3.1623

Un entero es 1 y su raíz cuadrada es 1


Un entero es 2 y su raíz cuadrada es 1.41421
Un entero es 3 y su raíz cuadrada es 1.73205
Un entero es 4 y su raíz cuadrada es 2
Un entero es 5 y su raíz cuadrada es 2.23607
Un entero es 6 y su raíz cuadrada es 2.44949
Un entero es 7 y su raíz cuadrada es 2.64575
Un entero es 8 y su raíz cuadrada es 2.82843
Un entero es 9 y su raíz cuadrada es 3
Un entero es 10 y su raíz cuadrada es 3.16228

z = 1.0e+003 *

0.0010 0.0020 0.0030 0.0040 0.0050 0.0060 0.0070


0.0080 0.0090 0.0100
0.0010 0.0014 0.0017 0.0020 0.0022 0.0024 0.0026
0.0028 0.0030 0.0032
0.0010 0.0040 0.0090 0.0160 0.0250 0.0360 0.0490
0.0640 0.0810 0.1000
0.0010 0.0080 0.0270 0.0640 0.1250 0.2160 0.3430
0.5120 0.7290 1.0000

n=1 sqrt(n)=1 n^2=1 n^3=1


n=2 sqrt(n)=1.41421 n^2=4 n^3=8

04 archivos .m 17
04. Archivos m. Lic. Amado Malca Villalobos

n=3 sqrt(n)=1.73205 n^2=9 n^3=27


n=4 sqrt(n)=2 n^2=16 n^3=64
n=5 sqrt(n)=2.23607 n^2=25 n^3=125
n=6 sqrt(n)=2.44949 n^2=36 n^3=216
n=7 sqrt(n)=2.64575 n^2=49 n^3=343
n=8 sqrt(n)=2.82843 n^2=64 n^3=512
n=9 sqrt(n)=3 n^2=81 n^3=729
n=10 sqrt(n)=3.16228 n^2=100 n^3=1000

z = 1.0e+006 *

1.0006 1.0006 1.0006 1.0006 1.0006 1.0006


0.0010 0.0010 0.0010 0.0010 0.0010 0.0010

n=1e+006 sqrt(n)=1000.277462
n=1e+006 sqrt(n)=1000.277961
n=1e+006 sqrt(n)=1000.278461
n=1e+006 sqrt(n)=1000.278961
n=1e+006 sqrt(n)=1000.279461
n=1e+006 sqrt(n)=1000.279961
n=1.00056e+006 sqrt(n)=1000.277462
n=1.00056e+006 sqrt(n)=1000.277961
n=1.00056e+006 sqrt(n)=1000.278461
n=1.00056e+006 sqrt(n)=1000.278961
n=1.00056e+006 sqrt(n)=1000.279461
n=1.00056e+006 sqrt(n)=1000.279961
n=1.00056e+006 sqrt(n)=1000.277462
n=1.00056e+006 sqrt(n)=1000.277961
n=1.00056e+006 sqrt(n)=1000.278461
n=1.00056e+006 sqrt(n)=1000.278961
n=1.00056e+006 sqrt(n)=1000.279461
n=1.00056e+006 sqrt(n)=1000.279961
>>

IMPORTACION Y EXPORTACION DE DATOS


Procesando datos de fuentes externas (Importación)
Escribiendo datos en un manejador de datos (Exportación)

DE EXCEL A MATLAB (xlsread)


Importando datos desde Excel a Matlab.

Para esto contamos con un comando llamado xlsread y su sintaxis es:

04 archivos .m 18
04. Archivos m. Lic. Amado Malca Villalobos

xlsread (' NombreArchivo ')

[num, text ] = xlsread ( NombreArchivo, Hoja, Rango)

donde:
num: Es una matriz de tipo numérico en el cual serán guardados todos los datos
numéricos encontrados dentro de la hoja y rango especificado.
text: Matriz de tipo celda donde se guardaran todos las cadenas que sean encontradas
dentro de la hoja y rango especificado. Cada cadena se guarda en una celda dentro de
la matriz.
NombreArchivo: El nombre o ruta del archivo a leer. Este parámetro debe ser una
cadena.
Ejemplo: Ahora se leerá un archivo en Excel, llamado datos.xlsx

Aquí vemos una hoja de datos en formato Excel


datos1.xlsx

Leyendo ahora con el comando xlsread


>> [A,B]=xlsread('datos.xlsx')
A=
1 2 3 4 5 6 7
180 156 147 206 210 235 222
NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN
1 2 3 4 5 6 7
1 4 9 16 25 36 49
1 8 27 64 125 216 343
B=
'Mes'
'LLuvia'
''

04 archivos .m 19
04. Archivos m. Lic. Amado Malca Villalobos

''
'numero'
'cuadrado'
'cubo'
>>
Leyendo por separado la información
>> [A,B]=xlsread('datos.xlsx','hoja2','c2:j3')
A=
1 2 3 4 5 6 7
180 156 147 206 210 235 222
B=
'Mes'
'LLuvia'
>>
>> [C,D]=xlsread('datos.xlsx','hoja2','c6:j8')
C=
1 2 3 4 5 6 7
1 4 9 16 25 36 49
1 8 27 64 125 216 343
D=
'numero'
'cuadrado'
'cubo'
>>
>> xlsread('datos.xlsx','hoja2','c6:j8')
ans =
1 2 3 4 5 6 7
1 4 9 16 25 36 49
1 8 27 64 125 216 343
>>

DE MATLAB A EXCEL (xlswrite)


Esta vez veremos cómo exportar datos desde MatLab a una hoja de datos de Excel.

Lo primero que debemos conocer es la función y la sintaxis necesaria para realizar esta
operación; Esta se llama xlswrite y su sintaxis es la siguiente:
xlswrite( NombreArchivo, Datos )

04 archivos .m 20
04. Archivos m. Lic. Amado Malca Villalobos

[estado] = xlswrite( NombreArchivo, Datos, Hoja, CeldaInicial )

Donde:
Estado= regresa 1 cuando la operación de escritura ha sido un éxito, 0 en caso
contrario.
NombreArchivo: El nombre o ruta del archivo al que se escribirá, si no se escribe la
ruta completa, tomara por deafult que el archivo se encuentra en el current directory,
si el archivo no existe lo creará. Este parámetro debe ser una cadena.
Datos: Son los datos que se escribirán en el archivo, pueden ser numéricos o
caracteres.
Hoja: Es la hoja en la que se escribirá, por default Hoja1, este parámetro debe ser una
cadena.
CeldaInicial: A partir de esta se empezara la escritura de los datos, este parámetro
debe ser una cadena.
Ejemplo: Ahora se creara una matriz A, y luego se grabara en un archivo de Excel
Creando la matriz y escribiendo en la hoja de calculo
>> A=[1 7 -2;4 -5 6;8 5 -9]
A=
1 7 -2
4 -5 6
8 5 -9
>> xlswrite('arch_datos.xlsx',A)
Archivo en la PC, en la carpeta de trabajo de MatLab

Archivo de excel

04 archivos .m 21
04. Archivos m. Lic. Amado Malca Villalobos

Ejemplo: Ahora la matriz A se grabara en un archivo llamado “arch_datos2.xlsx”, en la


hoja llamada “matriz” en los rangos especificados
Creando la matriz y escribiendo en la hoja de calculo
>> A=[1 7 -2;4 -5 6;8 5 -9]
A=
1 7 -2
4 -5 6
8 5 -9
>> [estado]=xlswrite('arch_datos2.xlsx',A,'matriz','C1:E3')
Warning: Added specified worksheet.
> In xlswrite>activate_sheet at 294
In xlswrite>ExecuteWrite at 249
In xlswrite at 207
estado = 1
>> [estado]=xlswrite('arch_datos2.xlsx',A,'matriz','A5:C7')
estado = 1
Archivo en la PC, en la carpeta de trabajo de MatLab

Archivo de excel

04 archivos .m 22
04. Archivos m. Lic. Amado Malca Villalobos

EJEMPLOS ADICIONALES
El area de un triangulo
area.m
function [A] = area(a,b,c)
% Calcula el area de un triangulo
cualquiera
% se tienen las longitudes de los lados
a, b y c
% Ingreso: a,b,c: Longitudes de los
lados
% Salida: A: area del triangulo
%
p = (a+b+c)/2;
A = sqrt(p*(p-a)*(p-b)*(p-c));

La ejecución en Matlab
>> help area
Calcula el area de un triangulo cualquiera
se tienen las longitudes de los lados a, b y c
Ingreso: a,b,c: Longitudes de los lados
Salida: A: area del triangulo
>> area(5,7,12)
ans = 0
>> area(3,4,5)
ans = 6
>> area(3,4,50)
ans = 0 +6.1872e+002i
>> area(13,45,50)
ans = 282.3190
>>

Los términos de la sucesión de Fibonacci


Fibo1.m
function f = Fib1(n)
% Retorna el n-esimo numero
% de la Sucesion de Fibonacci.
% 1, 1, 2, 3, 5, 8, . . .
% F(1)=1, F(2)=1,
% F(n+2)=F(n+1)+F(n), si n entero
positivo

F=zeros(1,n);
F(1)=1;
F(2) = 1;
for i = 3:n
F(i) = F(i-1) + F(i-2);
end
f = F(n);
La ejecución en Matlab

04 archivos .m 23
04. Archivos m. Lic. Amado Malca Villalobos

>> help Fib1


Retorna el n-esimo numero
de la Sucesion de Fibonacci.
1, 1, 2, 3, 5, 8, . . .
F(1)=1, F(2)=1,
F(n+2)=F(n+1)+F(n), si n entero positivo
>> Fib1(1)
ans = 1
>> Fib1(11)
ans = 89
>> Fib1(-11)
??? Attempted to access F(-11); index must be a positive
integer or logical.
Error in ==> Fib1 at 14
f = F(n);
>> Fib1(16)
ans = 987
>>

Los términos de la sucesión de Fibonacci


Fibo2.m
function f = Fib2(n)
% Retorna el n-esimo termino
% de la sucesion de Fibonacci.
if n==1
f = 1;
elseif n==2
f = 1;
else
f1 = 1; f2 = 1;
for i = 2:n-1
f = f1 + f2;
f1=f2; f2 = f;
end
end
La ejecución en Matlab
>> Fib2(4)
ans = 3
>> Fib2(40)
ans = 102334155
>>

Los términos de la sucesión de Fibonacci con matrices


Fibo3.m
function f = Fib3(n)
% Retorna los terminos de la

04 archivos .m 24
04. Archivos m. Lic. Amado Malca Villalobos

% Sucesion de Fibonacci
% Usando matrices
A = [0 1;1 1];
y = A^n*[0;1];
f=y(1);

La ejecución en Matlab
>> Fib3(6)
ans = 8
>> Fib3(16)
ans = 987
>>

Promedio de un arreglo de numeros


promedio.m
function p = promedio(x)
% Calcula el promedio de los elementos
de un vector x
% y dibuja dicho vector, ploteando
% Sintaxis : promedio(x) donde x es el
vector a promediar
n=length(x);
p=0;
for i=1:n
p=p+x(i);
end
p=p/n;
plot(x);
La ejecución en Matlab
>> x=[3 4 8 2 7 10 18 45 78 3 2 9]
x = 3 4 8 2 7 10 18 45 78 3 2 9
>> promedio(x)
ans = 15.7500
>>
La grafica de los valores de x
80

70

60

50

40

30

20

10

0
0 2 4 6 8 10 12

04 archivos .m 25

También podría gustarte