Funciones

Vectorización.

En algunos casos resulta necesario realizar la ejecución de una función varias veces. La solución que primero viene a nuestra mente es utilizar ciclos y dentro de este colocar el llamado a la función tal como se muestra

for i= 1:10

y(i) = fun01(i);

end

display(y)

También podríamos pensar en introducir el ciclo en la función.

MATLAB ofrece otro recurso para llevar a cabo esta operación, sin hacer uso de ciclos que tienen que manejar una variable adicional. Este procedimiento se llama vectorización y consiste en escribir nuestros algoritmos para que puedan realizar las operaciones con vectores y dado que un vector puede tener longitud cualquier longitud incluyendo la unidad, la operación se realizara para todos los elementos del arreglo,

Así podemos reescribir la función fun03.m a partir de fun01.m utilizando vectores.

function y = fun03(x)

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

Note que el cambio respecto a la función fun01 fue agregar en la operaciones de multiplicación y potenciación el punto (.) para indicar que las operaciones se harán elemento a elemento. Esto se aplicará también en el caso de la división.

Nuestra función trabajará con un argumento como

fun03(2)

y la salida es

ans =

35

Así por ejemplo si damos como argumento de la función fun03 un vector escribimos

x=[1 2 3 4];

fun03(x)

se producirá la salida.

ans =

9 35 93 195

 Si fuese una matriz hacemos

A = [1 2; 3 4];

fun03(A)

y obviamente la salida es una matriz

ans =

9 35

93 195

Otra forma de utilizar de hacer llamados a la función fun03.m vectorizada es

fun03(1:3)

con salida

ans =

9 35 93

Es importante que esta propiedad sea introducida dentro de las funciones que escribas en MATLAB ya que tendrás la posibilidad de realizar tus operaciones con cualquier tipo de argumento.

Variables Globales.

Las variables que se utilizan dentro de la funciones solo serán conocidas localmente cuando se realiza su ejecución, esta es una propiedad muy buena que nos permite realizar funciones protegiéndonos contra la redefinición de variables.

Sin embargo existen algunas aplicaciones donde será necesario hacer uso de variables que puedan convivir en varias funciones. A estas variables las llamaremos globales y se definirán como tales de la siguiente manera.

global A.

Ejemplo.

Escriba un programa para graficar una función cuadrática dada por la función

f(x) = Ax2 + Bx + C

1.- Escribimos la función grafica.m

function y =grafica(x)

global A B C

A = 2;

B = 1;

C = 3;

y = fun04(x);

plot(x,y)

Note que las variables A, B y C no tienen un valor dado y fueron declaradas globales.

2.- Escribir un archivo, por ejemplo fun04.m, donde además, deben declararse las variables A, B y C.

function y = fun04(x)

global A;

global B;

global C;

y = A*x.^2+ B.*x + C;

En este archivo las variables A, B y C reciben valores y son declaradas como globales.

Regresar.