Vous êtes sur la page 1sur 20

04. Archivos m.

Lic. Amado Malca Villalobos

Archivos m.

Un fichero script es un conjunto de sentencias u órdenes que se ejecutan en forma secuencial, es decir es un programa. En algunos casos le llamaremos 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.

en el directorio actual de MatLab, para poder ejecutarse. - Con el comando cd, se muestra

- Con el comando cd, se muestra el directorio de trabajo actual. >> cd C:\Users\Malca\Documents\MATLAB

1

04. Archivos m.

Lic. Amado Malca Villalobos

04. Archivos m. Lic. Amado Malca Villalobos En donde vamos a escribir una función: y 
04. Archivos m. Lic. Amado Malca Villalobos En donde vamos a escribir una función: y 

En donde vamos a escribir una función:

y f x x 5 x 8 x 4 .



3

2

fun.m

Ejecucucion

 

function

y=fun(x)

>> help fun programa que calcula el valor de una función dado el valor de x. >> fun(8)

 

% programa que calcula el valor de

% una función dado el valor de x.

ans =

 

644

y=x.^3+3*x.^2-8*x+4;

>> x=1:2:17

 

x =

1

3

5

7

9

11

13

15

17

>> w=fun(x)

 

w =

0

34

164

438

904

1610

2604

3934

5648

2

04. Archivos m.

Lic. Amado Malca Villalobos

04. Archivos m. Lic. Amado Malca Villalobos VARIABLES GLOBALES Recuerde que las variables escritas en un

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 e la

ventana de comandos 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.

pjugada.m

Ejecución

%

este programa calcula el

>> help pjugada este programa calcula el promedio de un conjunto de jugadas >> pjugada

promedio

%

de un conjunto de jugadas

j1=80;

j2=85;

j3=75;

Puntuacion_Media =

60

j4=90;

 

Puntuacion_Media=(j1+j2+j3)/4

3

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.

pjugada2.m

Ejecución

 

este programa calcula el promedio

%

>> help pjugada2 este programa calcula el promedio de un conjunto de tres jugadas las cuales se ingresan en la ventana de comandos con las variables j1, j2 y j3 >> clear >> pjugada2

%

de un conjunto de tres

jugadas

las cuales se ingresan en la ventana de comandos

%

%

con las variables j1, j2

y

j3

Puntuacion_Media=(j1+j2+j3)/4

??? Undefined function or variable 'j1'. Error in ==> pjugada2 at 6

Puntuacion_Media=(j1+j2+j3)/4

>> j1=5,j2=12,j3=15

j1 =

5

j2 =

12

j3 =

15

>> pjugada2 Puntuacion_Media =

8

Variable definida y asignada en el fichero script, pero luego se cambia en la ventana de comandos 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:

nombre _ var

iable input en la ventana de comandos')

('mensaje que se muestra

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.

Pjugada3.m

Ejecución

este programa calcula el promedio

%

>> pjugada3 Ingrese la primera puntuacion:89 Ingrese la segunda puntuacion:87

%

de un conjunto de tres

jugadas

las cuales se ingresan en la ventana de comandos

%

Ingrese la terecra puntuacion:95

Puntuacion_Media =

67.7500

4

04. Archivos m.

Lic. Amado Malca Villalobos

% usando el comando input j1=input('Ingrese la primera puntuacion:') j2=input('Ingrese la segunda puntuacion:') j3=input('Ingrese la terecra puntuacion:')

Puntuacion_Media=(j1+j2+j3)/4

la segunda puntuacion:' ) j3=input( 'Ingrese la terecra puntuacion:' ) Puntuacion_Media=(j1+j2+j3)/4
la segunda puntuacion:' ) j3=input( 'Ingrese la terecra puntuacion:' ) Puntuacion_Media=(j1+j2+j3)/4

COMANDO DE ENTRADA 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:

o tambien:

x=input('comentario: ') x=input('comentario: \n')

x=input('ingrese su nombre:

x=input('ingrese su nombre:

','s')

\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. 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. Ahora veamos algunos ejemplos:

');

ingrese su edad: 46

A = 46

');

ingrese su edad: 25

>> A=input('haga su pregunta:

haga su pregunta:

A = que es la matemática

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

45

>> A=input('ingrese su edad:

>> A=input('ingrese su edad:

','s');

que es la matemática

>> A=input('Estado civil:\n','s');

Estado civil:

soltero

5

04. Archivos m.

Lic. Amado Malca Villalobos

COMANDOS DE SALIDA

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

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.

Ahora vamos a escribir un programa en un script Ejemplo 4.1: En este programa hallaremos el promedio de los primeros 20 enteros positivos múltiplos de 5. Solución:

ejemplo01.m

 

% en el ejemplo se crea un vector

 

% con los 20 primeros multiplos de 5

 

% y luego se halla promedio de ellos

z=[5:5:100];

 

disp(z) disp('') disp('el valor promedio es') prom=sum(z)/norm(z); disp(prom)

 

Ejecución en MatLab:

 

>> ejemplo01

 

5

10

15

20

25

30

35

40

45

50

55

60

65

70

75

80

85

90

95

100

el valor promedio es:

3.9199

 

Ejemplo 4.2: Mostrar una tabla con 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 nuemros enteros positivos

%

sus cuadrados y sus cubos

n=[1:5]';

6

04. Archivos m.

Lic. Amado Malca Villalobos

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

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 relacion 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 relacion de cuadrado y cubos

>>

7

04. Archivos m.

Caracteres especiales

Lic. Amado Malca Villalobos

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

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

-

Justificacacion 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

8

 

04.

Archivos m.

Lic. Amado Malca Villalobos

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 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.

 

9

04. Archivos m.

Lic. Amado Malca Villalobos

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

 

>> 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')

 

10

04. Archivos m.

Lic. Amado Malca Villalobos

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) 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

11

04. Archivos m.

Lic. Amado Malca Villalobos

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 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

12

04. Archivos m.

Lic. Amado Malca Villalobos

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

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

13

 

04.

Archivos m.

Lic. Amado Malca Villalobos

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 >>

14

04. Archivos m.

Lic. Amado Malca Villalobos

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

El formato es como sigue:

(xlsread)

Nombre _variable=xlsread(‘nombre_fichero’) Nombre _variable=xlsread(‘nombre_fichero’,’nombre_hoja’)

Aquí vemos una hoja de datos en formato Excel

 

datos1.xlsx

 
 

n

1

2 3

 

4

5

6

7

8

9

 

p

2

3 5

 

7

11

13

17

19

23

Leyendo ahora con el comando xlsread

 

>> A=xlsread('datos1.xlsx')

 

A

=

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

2

3

5

7

11

13

17

19

23

29

31

37

41

43

47

>>

Nombre _variable=xlsread(‘nombre_fichero’,’nombre_hoja’) Nombre _variable=xlsread(‘nombre_fichero’,’nombre_hoja’,’rango’)

Aquí vemos una hoja de datos en formato Excel

 

datos1.xlsx

 
   

n

2 3

1 4

5

6

7

8

9

 

p

3 5

2 7

11

13

17

19

23

 

Leyendo ahora con el comando xlsread

 

>> A=xlsread('datos1.xlsx','potencias','D5:O9')

 

A

=

9

16

25

36

49

64

81

100

121

144

169

65

3

4

5

6

7

8

9

10

11

12

13

14

5

7

11

13

17

19

23

29

31

37

41

43

9

16

25

36

49

64

81

100

121

144

169

65

3

4

5

6

7

8

9

10

11

12

13

14

>>

 

15

04. Archivos m.

DE MATLAB A EXCEL (xlswrite)

Lic. Amado Malca Villalobos

Exportando datos de Matlab a una hoja de Excel

xlswrite(‘nombre_fichero’,nombre_variable)

xlswrite(‘nombre_fichero’,array,’nombre_hoja’,’rango’)

El array a escribir en la hoja de calculo

 

>> A

A =

9

16

25

36

49

64

81

100

121

144

169

65

3

4

5

6

7

8

9

10

11

12

13

14

5

7

11

13

17

19

23

29

31

37

41

43

9

16

25

36

49

64

81

100

121

144

169

65

3

4

5

6

7

8

9

10

11

12

13

14

Ahora escribiendo en la hoja de calculo

 

>> xlswrite('datos1.xlsx',A)

 

9

16

25

36

49

64

81

 

3

4

5

6

7

8

9

5

7

11

13

17

19

23

9

16

25

36

49

64

81

3

4

5

6

7

8

9

>> xlswrite('datos3.xlsx',A,'matriz','C1:N5')

 

16

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 = >> area(13,45,50) ans = 282.3190 >>

0 +6.1872e+002i

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);

 

17

04.

Archivos m.

Lic. Amado Malca Villalobos

end f = F(n);

La ejecución en Matlab

>> 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)

 

18

04.

Archivos m.

Lic. Amado Malca Villalobos

ans =

>> Fib2(40)

3

ans =

102334155

>>

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

 

Fibo3.m

function f = Fib3(n)

%

Retorna los terminos de la

%

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)

 

19

04.

Archivos m.

Lic. Amado Malca Villalobos

ans = 15.7500 >> La grafica de los valores de x 80 70 60 50
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

20