Sei sulla pagina 1di 25

04. Archivos m. Lic.

Amado Malca Villalobos

Archivos m.
En el momento de ejecutar una aplicacin en alguna rea de inters, 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, tambin 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
funcin.
Para que estos programas sean coherentes y los pueda leer el programa Matlab, deben
seguir un orden lgico. Estos ficheros tienen extensin 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 debern ser ingresados por teclado posiblemente, y en algn
formato adecuado. Para esto hay comandos adecuados.

Notas sobre los ficheros script


- Un fichero script es una secuencia de comandos de MatLab, tambin 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 asignacin de variable sin un punto y coma al final), la salida se visualiza
en la ventana de comandos.
- La utilizacin 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 tambin de denominan ficheros M, ya que la extensin .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 travs 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 situacin.

_ 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. Aparecern los archivos de tipo .m y tambin 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 ecuacin cuadrtica 5x 2 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 lneas
siempre van precedidas del smbolo 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
ecuacin cuadrtica 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 ecuacin cuadrtica
5x2-8x+2=0
>>

Ejemplo: En el siguiente caso se construir una funcin, la cual tiene una pequea
diferencia en su estructura que contiene una lnea adicional, que ser explicada con
mayor detalle en el siguiente acpite.
Se creara la funcin: y f x x3 5x 2 8x 4 . Luego de lo cual se podr evaluar,
graficar y hacer algunas cosas ms propias de las funciones matemticas.

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 funcin 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 funcin 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 funcin en el intervalo [-6, 6]

Vista de la ventana de comandos en MatLab, del archivo m, y del grafico de la funcin.

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 estn en un ficheros tipo fuction.
Cuando se ejecuta un fichero script, las variables utilizadas en los clculos dentro del
fichero deben tener valores asignados previamente en el mismo script. Esta asignacin
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 asignacin 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 Ejecucin
% 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;
Puntuacion_Media=(j1+j2+j3+j4)/4 de un conjunto de jugadas
>>

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
Ejecucin 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 opcin la variable se define en el fichero script, y cuando se ejecuta tal archivo
al usuario se le pide un valor concreto a travs 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 puntuacin:')
j2=input('Ingrese la segunda puntuacin:')
j3=input('Ingrese la tercera puntuacin:')
j4=input('Ingrese la cuarta puntuacin:')
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 algn
programa, los llamados archivos ****.m, mediante el comando: input
Hay dos tipos de objetos que ingresan por teclado, numricos (Matriz) o como una
cadena de letras y/o smbolos (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 informacin pasa a la
siguiente lnea.

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
tambin una cadena de caracteres cualesquiera.
En el cuarto caso, al igual que el segundo, el cursor para ingresar la informacin pasa a
la siguiente lnea.

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 matemtica
A = que es la matemtica
>> 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 operacin. Otra opcin es
con los comandos:
disp fprintf
Comando disp
El formato de disp es:
disp(comentario)
disp(variable)
en el primer caso la salida es algn 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 ','matemtica ','es ','la ','madre ','de ','todas ','las ','ciencias'])
La matemtica es la madre de todas las ciencias
>> disp(['La','matematica','es','la','madre','de','todas','las','ciencias'])
Lamatematicaeslamadredetodaslasciencias
>> disp(['La ','matemtica ','es ','la ','madre ','de ','todas ','las ','ciencias'])
La matemtica 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 lnea de los comandos las palabras deban 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 mltiplos de 5.
Solucin:
Prommult5.m
% en el ejemplo se crea un vector
% con los 20 primeros mltiplos de 5
% y luego se halla el promedio de ellos
r=[1:20];
z=5*r;
disp('Los veinte mltiplos de 5, son:')
disp(z)
disp(' ')
disp('el valor promedio es')
prom=sum(z)/norm(z);
disp(prom)
Ejecucin en MatLab:
>> prommult5
Los veinte mltiplos 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.
Solucin:
Ejemplo4_2.m
% Este programa crea una tabla de los
primeros n nmeros 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)
Ejecucin 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 algn formato a la presentacin 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 relacin de
cuadrado y cubos')

Ahora viene la ejecucin, 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 relacin de cuadrado y cubos >>

Caracteres especiales usados


Smbolo Descripcin
\n Carcter de escape, se empieza una nueva lnea.
\b Carcter de borrado
\t Tabulacin 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 visualizacin 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)
Smbolo Descripcin
- Justificacin izquierda dentro del campo
+ Visualiza el carcter del signo (+ -) delante del
numero
0 Aade ceros si el numero es ms pequeo que
el campo

Lo segundo es el ancho del campo, que corresponde al primer nmero (5 en el


ejemplo),el cual nos indica el menor nmero de dgitos de la visualizacin. (Opcional)

El tercero es corresponde a la precisin, lo cual indica el numero de dgitos que se


mostraran a la derecha del punto decimal. (Opcional)

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


Es obligatorio, las opciones son:
Smbolo Descripcin
e Notacin exponencial en minsculas (ej:
2.456e+002)
E Notacin exponencial en maysculas (ej:
2.456E+002)
f Notacin de punto fijo (ej: 245.6)
g Representacin en formato corto de e o f
G Representacin 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 ejecucin 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 numricos, 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 mnimo es %4i , el mximo es %4i y el total de
lluvias es %6i.\n',m,M,S)

La ejecucin 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 mnimo es 161 , el mximo es 305 y el total de lluvias es


2823.
>>

Presentacin de arrays (Matrices)


ej05.m
%ahora presentaremos una matriz
%donde
%fila uno: nmeros naturales
%fila dos: el cuadrado
%fila tres: la raz cuadrada
x=[1:8];
y=x.^2;
z=sqrt(x);
w=[x;y;z]
fprintf('el numero %i su cuadrado %i su raz %f\n',w)
La ejecucin 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 raz 1.000000
el numero 2 su cuadrado 4 su raz 1.414214
el numero 3 su cuadrado 9 su raz 1.732051
el numero 4 su cuadrado 16 su raz 2.000000
el numero 5 su cuadrado 25 su raz 2.236068
el numero 6 su cuadrado 36 su raz 2.449490
el numero 7 su cuadrado 49 su raz 2.645751
el numero 8 su cuadrado 64 su raz 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 maana es %e grados F \n',temp)
fprintf('la temperatura en la maana es %f grados F \n',temp)
fprintf('la temperatura en la maana es %g grados F \n',temp)
fprintf('la temperatura en la maana es \n %g grados F \n',temp)

w=[1:10;sqrt(1:10)]
fprintf('Un entero es %g y su raz 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 ejecucin 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 maana es 2.560000e+001 grados F


la temperatura en la maana es 3.370000e+001 grados F
la temperatura en la maana es 3.410000e+001 grados F
la temperatura en la maana es 3.560000e+001 grados F
la temperatura en la maana es 3.680000e+001 grados F
la temperatura en la maana es 25.600000 grados F
la temperatura en la maana es 33.700000 grados F

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

la temperatura en la maana es 34.100000 grados F


la temperatura en la maana es 35.600000 grados F
la temperatura en la maana es 36.800000 grados F
la temperatura en la maana es 25.6 grados F
la temperatura en la maana es 33.7 grados F
la temperatura en la maana es 34.1 grados F
la temperatura en la maana es 35.6 grados F
la temperatura en la maana es 36.8 grados F
la temperatura en la maana es
25.6 grados F
la temperatura en la maana es
33.7 grados F
la temperatura en la maana es
34.1 grados F
la temperatura en la maana es
35.6 grados F
la temperatura en la maana 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 raz cuadrada es 1


Un entero es 2 y su raz cuadrada es 1.41421
Un entero es 3 y su raz cuadrada es 1.73205
Un entero es 4 y su raz cuadrada es 2
Un entero es 5 y su raz cuadrada es 2.23607
Un entero es 6 y su raz cuadrada es 2.44949
Un entero es 7 y su raz cuadrada es 2.64575
Un entero es 8 y su raz cuadrada es 2.82843
Un entero es 9 y su raz cuadrada es 3
Un entero es 10 y su raz 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 (Importacin)
Escribiendo datos en un manejador de datos (Exportacin)

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 numrico en el cual sern guardados todos los datos
numricos 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 parmetro 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 informacin
>> [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 cmo exportar datos desde MatLab a una hoja de datos de Excel.

Lo primero que debemos conocer es la funcin y la sintaxis necesaria para realizar esta
operacin; 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 operacin 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 parmetro debe ser una cadena.
Datos: Son los datos que se escribirn en el archivo, pueden ser numricos o
caracteres.
Hoja: Es la hoja en la que se escribir, por default Hoja1, este parmetro debe ser una
cadena.
CeldaInicial: A partir de esta se empezara la escritura de los datos, este parmetro
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 ejecucin 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 trminos de la sucesin 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 ejecucin 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 trminos de la sucesin 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 ejecucin en Matlab
>> Fib2(4)
ans = 3
>> Fib2(40)
ans = 102334155
>>

Los trminos de la sucesin 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 ejecucin 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 ejecucin 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

Potrebbero piacerti anche