Introducción a MATLAB

¿Cómo Empezar?

Entrando Matrices Simples

MATLAB trabaja esencialmente con matrices numéricas rectangulares. La manera más fácil de entrar matrices pequeñas es enumerando los elementos de ésta de tal manera que:

Ejemplo:

A = [ 1 2 3; 4 5 6; 7 8 9 ]

resultaría en la matriz

A =

1 2 3
4 5 6
7 8 9

MATLAB guarda esta matriz para utilizarla luego bajo el nombre de A.
Si la matriz a entrar es muy grande se puede utilizar el siguiente formato:

A = [1 2 3
4 5 6
7 8 9]

El comando load y la función fread pueden leer matrices generadas en sesiones anteriores ó generadas por otros programas.

Elementos de matrices

Los elementos de una matriz pueden ser cualquier expresión de MATLAB.

Ejemplo:

x = [-1.3,sqrt(3),(1+2+3) *4/5]

resultaría en

x =

-1.3000 1.7321 4.8000

Nos podemos referir a elementos individuales de la matriz con índices entre paréntesis.

Ejemplo: En el ejemplo anterior

x(5) = abs(x(1))

resultaría en

x =

-1.3000 1.7321 4.8000 0 1.3000

Para añadir otra fila a la matriz A de arriba podemos hacer lo siguiente:

r = [10 11 12];

A = [A; r]

y resultaría en

A =
1 2 3
4 5 6
7 8 9
10 11 12

Instrucciones de MATLAB y Variables

Si omites el nombre de la variable y el signo "=", MATLAB automáticamente crea la variable ans para guardar el resultado. También distingue las letras mayúsculas de las minúsculas. Todos los nombres de funciones deben ser en letras minúsculas.

Obteniendo Información del Espacio de Trabajo

Los ejemplos que hemos dado se han guardado en variables que están en el espacio de trabajo de MATLAB. Para listar las variables en el espacio de trabajo se utiliza el comando who. Para ver información adicional acerca de estas variables se utiliza el comando whos.

Variables Permanentes

Las variables permanentes son aquellas con significado especial, y que no se pueden eliminar. Estas son por ejemplo las variables ans y eps.

La variable eps es una tolerancia para determinar cosas como singularidad y rango. Su valor inicial es la distancia de 1.0 al próximo número de punto flotante mayor. En otras palabras, eps es el número positivo más pequeño tal que .

Ayuda

Para obtener ayuda ó información de MATLAB utilice el comando help.

Saliendo y Guardando el Espacio de Trabajo

Para salir de MATLAB se escribe quit ó exit. Al terminar una sesión de MATLAB, las variables en el espacio de trabajo se borran. Si deseas guardar tu espacio de trabajo escribes save. save guarda todas las variables en un archivo llamado matlab.mat.

Se puede utilizar save y load con otros nombres de archivos, ó para guardar solo variables seleccionadas

Ejemplo:

save temp X Y Z

Este ejemplo guarda las variables X, Y, Z en el archivo temp.mat. Usando el comando load temp las obtienes nuevamente del archivo temp.mat. load y save también pueden importar y exportar información de archivos ASCII.

Expresiones Numéricas y Aritméticas

Puedes construir expresiones con los operadores usuales de aritmética y reglas de precedencia:

+ suma
- resta
* multiplicación
/ división a la derecha (división usual)
\ división a la izquierda
^ exponenciación

Algunas funciones matemáticas elementales de MATLAB son abs, sqrt, log y sin. Puedes añadir funciones fácilmente con los archivos-M.

La función intrínseca pi devuelve el número . La función Inf equivale a "infinito".

Matrices y Números Complejos

MATLAB también permite números complejos, indicados por las variables especiales i y j, en todas sus operaciones y funciones.

Funciones

Las funciones que utiliza MATLAB son intrínsecas al procesador de éste. Otras funciones están disponibles en la librería externa de archivos-M. Además de éstas funciones todo usuario también puede crear otras funciones. Puedes combinar las funciones de acuerdo a tu necesidad.

Ejemplo:

x = sqrt(log(z))

Operaciones de Matrices

Matrices Transpuestas

El caracter ' (apóstrofe) denota la transpuesta de la matriz. Si tenemos la matriz A y llamamos B = A', B es la transpuesta de la matriz A.

Sumando y Restando Matrices

Las operaciones suma (+) y resta (-) son definidas para las matrices siempre y cuando éstas tengan la misma dimensión. Es decir, si A y B son matrices 3 x 3, entonces A + B se puede calcular.

Suma y resta también está definidos si uno de los operandos es un escalar, es decir, una matriz 1 x 1.

Ejemplo:

x =

-1
0
2

y = x - 1

resultaría en

y =
-2
-1
1

Multiplicando Matrices

La operación de multiplicación de matrices está definida siempre que el número de columnas de la primera matriz sea igual a el número de filas de la segunda matriz.

El producto interior (producto escalar ó producto punto) se consigue de la siguiente manera:

x' * y

asumiendo que x y y son vectores columnas. Note que y' * x produce el mismo resultado.

El producto de una matriz y un vector es un caso especial del producto matriz-matriz y naturalmente, un escalar como pi, puede multiplicar, ó ser multiplicado por, cualquier matriz.

Dividiendo Matrices

En división de matrices, si A es una matriz cuadrada no-singular, entonces A\B y B/A corresponden a la multiplicación izquierda y derecha de B por el inverso de A, esto es, inv(A) * B y B * inv(A) respectivamente. El resultado es obtenido directamente sin la computación del inverso.

X = A\B es una solución a A * X = B

X = B/A es una solución a X * A = B

A\B es definido cuando B tiene la misma cantidad de filas que A. Si A es cuadrada, el método usado es Eliminación Gaussiana. El resultado es una matriz X con las mismas dimensiones que B.

Si A no es cuadrada, se factoriza utilizando la ortogonalización de Householder con pivoteo de columnas. Los factores son usados para resolver sistemas de ecuaciones sub-determinados y sobre-determinados. El resultado es una matriz X m-por-n donde m es el número de columnas de A y n es el número de columnas de B. Cada columna de X tiene, al menos, k componentes diferentes de cero, donde k es el rango efectivo de A.

B/A esta definido en términos de A\B por B/A = (A'\B') '.

Usando Exponentes con Matrices

La expresión A^n eleva A a la n-ésima potencia y esta definido si A es una matriz cuadrada y n un escalar.

Funciones Matriciales Trascendentales y Elementales

MATLAB considera expresiones como exp(A) y sqrt(A) como operaciones de arreglos, definidas en los elementos individuales de A. También puede calcular funciones trascendentales de matrices, como la matriz exponencial y la matriz logarítmica. Estas operaciones especiales están definidas solamente para matrices cuadradas.

Otras funciones elementales de matrices son:

poly - polinomio característico
det - determinante
trace - traza
kron - producto tensorial de Kronecker
eig - calcula los valores propios de la matriz

Operaciones de Arreglos

El término operaciones de arreglo se refiere a las operaciones de aritmética elemento por elemento. Un punto (.) antes de un operador indica una operación de arreglos elemento por elemento.

Suma y Resta de Arreglos

Para suma y resta, las operaciones de arreglos y las operaciones de matrices son iguales.

Multiplicación y División de Arreglos

El símbolo .* denota multiplicación de arreglos elemento por elemento.

Ejemplo:

x = [1 2 3]; y = [4 5 6];

z = x. *y

resulta en

z =
4 10 18

Las expresiones A./B y A.\B dan los cocientes de los elementos individuales.

Ejemplo:

z = x.\y

resulta en

z =
4.0000 2.5000 2.0000

Exponentes con Arreglos

El símbolo .^ denota exponenciación elemento por elemento.

Operadores de Relacionales

Hay seis operadores relacionales disponibles para comparar dos matrices de igual dimensión.

< menor que
<= menor que ó igual
> mayor que
>= mayor que ó igual
== igual que
~= no igual que

Operadores Lógicos

Los operadores &, | y ~ son los operadores de lógica "y", "ó" y "no" respectivamente.

El resultado de C = A & B es una matriz cuyos elementos son unos donde A y B sean ambos distintos de cero, y ceros donde A ó B sean cero. A y B deben de ser matrices con las mismas dimensiones, a menos que una de ellas sea un escalar.

El resultado de C = A | B es una matriz cuyos elementos son unos donde A ó B tienen un elemento diferente de cero, y ceros donde ambas tienen elementos cero. A y B deben de ser matrices con las mismas dimensiones, a menos que una sea un escalar.

El resultado de B = ~A es una matriz cuyos elementos son uno donde A tiene un elemento cero, y ceros donde A tiene elementos diferentes de cero.

La función any(x) devuelve 1 si cualquiera de los elementos de x es diferente de cero, de lo contrario devuelve 0. La función all(x) devuelve 1 solamente si todos los elementos de x son diferentes de cero. Estas funciones se usan en cláusulas if. Por ejemplo:

if all(A <.5)

. . .

end

Para argumentos matriciales, any y all trabajan por columnas para devolver un vector fila con el resultado para cada columna. Aplicando la función dos veces, any(any(A)), siempre reduce la matriz a una condición escalar.

Las funciones relacionales y lógicas en MATLAB son:

any - condiciones lógicas
all - condiciones lógicas
find - halla índices de arreglos de valores lógicos
exist - verifica si existen variables
isinf - detecta infinitos
finite - verifica para los valores finitos

Funciones Matemáticas

Algunas funciones trigonométricas utilizadas por MATLAB son:

sin - seno
cos - coseno
tan - tangente
asin - seno inverso
acos - coseno inverso
atan - tangente inversa

Algunas funciones elementales son:

abs - valor absoluto ó magnitud compleja
sqrt - raíz cuadrada
real - parte real
imag - parte imaginaria
conj - conjugado complejo
round - redondeo al entero más cercano
fix - redondeo hacia cero
floor - redondeo hacia -
ceil - redondeo hacia
sign - función signo
exp - exponencial base e
log - logaritmo natural
log10 - log base 10

También hay funciones especiales como las de bessel, gamma y beta.

Manipulación de Vectores y Matrices

Generando Vectores

Los dos puntos, :, son importantes en MATLAB. Por ejemplo

x = 1:5

genera un vector fila que contiene los números enteros del 1 al 5:

x =
1 2 3 4 5

No necesariamente se tiene que incrementar por números enteros, pueden ser decimales, números negativos ó constantes.

Índices

Podemos referirnos a elementos individuales de matrices encerrando sus índices en paréntesis.

Ejemplo:

A =
1 2 3
4 5 6
7 8 9

A(3, 3) = A(1, 3) + A(3, 1)

resultaría en

A =
1 2 3
4 5 6
7 8 10

Un índice puede ser un vector. Si x y v son vectores, entonces x(v) es [x(v(1)), x(v(2)), ..., x(v(n))]. Para matrices, los índices de vectores permiten acceso a submatrices contiguas y no-contiguas. Por ejemplo, suponga que A es una matriz 10 por 10. Entonces

A(1:5, 3)

especifica la submatriz 5 x 1, ó vector columna, que consiste de los primeros cinco elementos en la tercera columna de A. También

A(1:5, 7:10)

es la submatriz 5 x 4 de las primeras cinco filas y las últimas cuatro columnas.

Utilizando solo los dos puntos denota todo lo correspondiente a la fila ó columna. Podríamos tener una instrucción como:

A(:, [3 5 10]) = B(:, 1:3)

que reemplaza la tercera, quinta y décima columna de A con las primeras tres columnas de B.

Manipulación de Matrices

Funciones de Matrices

Existen varias factorizaciones de matrices que mencionamos brevemente y luego se discutirán en clase.

La Factorización Triangular ó Factorización LU expresa cualquier matriz cuadrada como el producto de dos matrices triangulares. Esta factorización se utiliza para obtener el inverso y el determinante. También es la base para la solución de sistemas lineales. Para obtener la factorización LU de A escribimos, [L, U] = lu(A).

La Factorización Ortogonal ó Factorización QR se utiliza para matrices cuadradas ó rectangulares. Esta factorización se utiliza para resolver sistemas lineales con más ecuaciones que desconocidas. Esta factorización también es la base para las funciones null y orth, que generan bases ortonormales para el espacio nulo y rango de una matriz rectangular dada.

La Descomposición de Valores Singulares es importante para el análisis de problemas que envuelvan matrices. La asignación triple [U, S, V] = svd(A) produce los tres factores en la descomposición de valores singulares A = U*S*V'. Las matrices U y V son ortogonales y la matriz S es diagonal. La función svd(A) devuelve solamente los elementos de la diagonal de S, que son los valores singulares de A.

La Descomposición de Valores Propios se utiliza para obtener los valores y vectores propios de una matriz cuadrada A. La función eig(A) devuelve los valores propios de A en un vector columna. La asignación [X,D]=eig(A) produce una matriz diagonal D cuyos elementos diagonales son los valores propios de A y las columnas de X son los vectores propios correspondientes.

Las Funciones de norma, rango y acondicionamiento asociadas son:

cond - número de condición en la norma 2
norm - norma 1, norma 2, norma F, norma
rank - rango
rcond - estimado del número de condición

Funciones de Funciones

MATLAB representa funciones matemáticas mediante archivos-M de tipo función. Un ejemplo de una función es el archivo-M llamado humps.m.

Ejemplo: El archivo-M llamado humps.m contiene las siguientes instrucciones:

function y = humps(x)
y = 1./((x-.3).^2 +.01) + 1./((x-.9).^2 +.04) - 6;

y para la gráfica de la función escribimos

x = -1:.01:2;
plot(x, humps(x))

lo cual produce la gráfica


Integración Numérica (Cuadratura)

El área bajo la gráfica de la función f(x) se puede aproximar integrando f(x) numéricamente mediante una regla de cuadratura. Para integrar la función definida por humps.m desde 0 hasta 1 escribimos:

q = quad('humps', 0, 1)

q =
29.8583

Note que el argumento de quad contiene un nombre de una función. Por esto quad se llama una función de función, i.e., es una función que opera en otras funciones.

Ecuaciones No-lineales y Funciones de Optimización

Las funciones de funciones para ecuaciones no-lineales y optimización incluyen:

fmin - mínimo de una función de una variable
fmins - mínimo de una función multi-variable (minimización no-lineal sin restricciones)
fzero - cero de una función de una variable
constr - minimización con restricciones
fsolve - solución de ecuación no-lineal
leastsq - cuadrados mínimos no-lineales

Funciones para Ecuaciones Diferenciales

Las funciones de MATLAB para resolver problemas de valor inicial para ecuaciones diferenciales ordinarias son:

ode23 - método Runge-Kutta de largo de paso variable que combina un método de orden dos con uno de orden tres.
ode45 - método Runge-Kutta-Fehlberg de largo de paso variable que combina un método de orden cuatro con uno de orden cinco.

Gráficas

Gráficas en Dos Dimensiones

Funciones Elementales para Graficar

plot - crea una gráfica de vectores ó columnas de matrices.
loglog - crea una gráfica utilizando una escala logarítmica para ambos ejes.
semilogx - crea una gráfica utilizando una escala logarítmica para el eje-x y una escala lineal para el eje-y.
semilogy - crea una gráfica utilizando una escala logarítmica para el eje-y y una escala lineal para el eje-x.
Puede añadir títulos, encabezamientos de ejes, líneas entre cortadas y texto a tus gráficas utilizando:
tittle - añade título a la gráfica
xlabel - añade encabezamiento al eje-x
ylabel - añade encabezamiento al eje-y
text - añade una cadena de texto en una localización específica
gtext - añade texto a la gráfica utilizando el ratón
grid - crea líneas entrecortadas

Creando una gráfica

Si y es un vector, plot(y) produce una gráfica lineal de los elementos de y versus el índice de estos. Si especifica dos vectores como argumentos, plot(x, y) produce una gráfica de y versus x.

Graficando Matrices

plot(Y) dibuja una línea para cada columna de Y. El eje-x es encabezado por el vector índice de fila, 1:m, donde m es el número de filas en Y.

Si plot es usado con dos argumentos y si X ó Y tienen más de una fila ó columna, entonces:

si Y es una matriz, y x es un vector, plot(x,Y) grafica las filas ó columnas de Y versus el vector x;

si X es una matriz y y es un vector, plot(X,y) grafica cada fila ó columna de X versus el vector y;

si X y Y son ambas matrices del mismo tamaño, plot(X, Y) grafica las columnas de X versus las columnas de Y.

También puedes usar la función plot con múltiples pares de argumentos de matriciales:

plot (X1, Y1, X2, Y2, ...)

Cada par X-Y es graficado, generando líneas múltiples. Los pares diferentes pueden ser de dimensiones diferentes.

Importando Datos

Puede importar y graficar datos generados fuera de MATLAB utilizando el comando load.

Graficando Funciones Matemáticas

Hay diferentes maneras de graficar funciones y = f(x). Una de estas formas es evaluar la función en miles de puntos en el intervalo de interés. La siguiente función oscila infinitamente rápido en el intervalo, 0 x 1. Podemos gráficarla como sigue:

x = (0:1/2000:1)';
plot(x, cos(tan(pi*x)))

lo cúal produce la gráfica:


Para hacer esto más eficiente podemos usar la función fplot la cual concentra su evaluación sobre las regiones donde la rapidez de cambio de la función es más grande.

Para evaluar una función, se crea un archivo de esta función y se le pasa el nombre del archivo a fplot. El siguiente archivo-M de tipo función define la función anterior como fofx.

function y = fofx(x)
y = cos(tan(pi*x));

Este archivo se guarda con el nombre de fofx.m. Ahora la instrucción

fplot('fofx', [0 1])

produce la gráfica


Aquí, fplot usa menos puntos para evaluar la misma función a intervalos más cerrados en la región donde la rapidez de cambio es mayor.

Control de Flujo

Ciclos FOR

El ciclo FOR permite que una instrucción, ó grupo de instrucciones, pueda repetirse un número determinado de veces. Por ejemplo,

for i = 1:n, x(i) = 0, end

asigna 0 a los primeros n elementos de x. Si n es menor de 1, el ciclo sigue siendo legal pero MATLAB no ejecuta la instrucción intermedia. Si x no esta definido, ó si tiene menos de n elementos, entonces un espacio adicional es localizado automáticamente a x cada vez que sea necesario.

Puedes anidar los ciclos como en el siguiente ejemplo:

for i = 1:m
for j = 1:n
A(i, j) = 1/(i+j-1);
end
end
A

La "A" luego del ciclo muestra en la pantalla el resultado final. Es importante que para cada for halla un end.

La forma general de un ciclo for es:

for v = expresión
enunciados
end

La expresión es en general una matriz. Las columnas de la matriz son asignadas una por una a la variable v y luego las instrucciones ó enunciados son ejecutados. Usualmente la expresión es algo como m:n, ó m:i:n, que es una matriz con solamente una fila y sus columnas son simplemente escalares.

Ciclos WHILE

El ciclo WHILE permite a una instrucción, ó grupo de instrucciones, repetirse un número indefinido de veces, bajo el control de una condición lógica. El siguiente ciclo while halla el primer entero n para el cual n! es un número de 100 digitos:

n = 1;
while prod(1:n) < 1.0e100, n = n+1; end
n

Un cálculo más práctico ilustrando el ciclo while es en el cómputo del exponencial de una matriz, llamado expm(A) en MATLAB. Una posible definición de la función exponencial es mediante la serie:

expm(A) = I + A + A^2/2! + A^3/3! + ...

La idea es sumar todos los términos necesarios hasta producir un resultado que, en la precisión finita la de computadora, no cambie aunque más términos sean añadidos. Para esto procedemos de la forma siguiente:

E = zeros(size(A));
F = eye(size(A));
k = 1;
while norm(E+F-E, 1) > 0
E = E + F;
F = A*F/k
k = k+1;
end

Aqui A es la matriz dada, E representa la suma parcial de la serie, F es un término individual en la serie, y k es el índice de este término.

La forma general de un ciclo while es:

while expresión
enunciados
end

Los enunciados son ejecutados repetidamente mientras todos los elementos de la matriz en la expresión sean diferentes de cero.

Enunciados IF y BREAK

A continuación se muestra como un cálculo se puede dividir en tres casos, dependiendo del signo ó paridad de un entero n:

if n < 0
A = negative(n)
else if rem(n, 2) == 0
A = even(n)
else
A = odd(n)
end

En el segundo, partiendo de un entero positivo n, si este es par, se divide entre dos; si es impar, se multiplica por tres y se le suma uno. ¿Habrá algún entero para el cual el proceso nunca termine? Aquí se ilustran los enunciados while y if, también se muestra la función input (en este caso es una entrada del teclado), y el enunciado break, que provee salidas abruptas de los ciclos. Veamos:

% Problema "3n+1" clásico de la teoria de números.
while 1
n = input('Entre n, negativo termina. ');
if n <= 0, break, end
while n > 1
if rem(n, 2) == 0
n = n/2
else
n = 3*n+1
end
end
end

Archivos-M: Comandos y Funciones

Los archivos de disco que contienen instrucciones de MATLAB se llaman archivos-M. Esto es así porque siempre tienen una extención de ".m" como la última parte de su nombre de archivo.

Un archivo-M consiste de una secuencia de instrucciones normales de MATLAB, que probablemente incluyen referencias a otros archivos-M. Un archivo-M se puede llamar a sí mismo recursivamente. Puedes crear archivos-M utilizando un editor de texto ó procesador de palabras.

Hay dos tipos de archivos-M: los de comandos y las funciones. Los archivos de comandos, automatizan secuencias largas de comandos. Los archivos de funciones, permiten añadir a MATLAB funciones adicionales expandiendo asi la capacidad de este programa. Ambos, comandos y funciones, son archivos ordinarios de texto ASCII.

Archivos de Comandos

Cuando un archivo de comandos es invocado, MATLAB simplemente ejecuta los comandos encontrados en dicho archivo. Las instrucciones en un archivo de comando operan globalmente en los datos en el espacio de trabajo. Los comandos son utilizados para hacer análisis, resolver problemas, ó diseñar secuencias largas de comandos que se conviertan en interactivas. Por ejemplo, suponga que el archivo fibro.m contiene los siguientes comandos de MATLAB:

% An M-file to calculate Fibonacci numbers
f = [1 1]; i = 1;
while f(i) + f(i+1) < 1000
f(i+2) = f(i) + f(i+1);
i = i + 1;
end
plot(f)

Si escribimos fibro en una ventana de MATLAB seguido de "enter" vemos que MATLAB calcula los primeros 16 números de Fibonacci, y luego grafica estos. Luego que la ejecución del archivo es completada, las variables f y i permanecen en el espacio de trabajo.

Los programas de demostraciones incluidos en MATLAB son ejemplos de como usar comandos para hacer tareas más complicadas. Para utilizar estos escriba demos en el "prompt" de MATLAB.

Archivos de Funciones

Un archivo-M que contiene la palabra function al principio de la primera línea, es un archivo de función. En una función, a diferencia de un comando, se deben de pasar los argumentos. Las variables definidas y manipuladas dentro de la función son locales a esta y no operan globalmente en el espacio de trabajo. Los archivos de funciones se utilizan para extender a MATLAB, i.e., crear nuevas funciones para MATLAB utilizando el lenguaje propio de MATLAB.

El archivo mean.m en el disco contiene las instrucciones:

function y = mean(x)
% Mean average or mean value.
% For vectors, mean(x) returns the mean value.
% For matrices, mean(x) is a row vector
% containing the mean value of each column.
[m, n] = size(x);
if m == 1
m = n;
end
y = sum(x)/m;

(Las lineas que comienzan con "%" son interpretadas como comentarios por MATLAB). La existencia de este archivo en el disco duro define una nueva función en MATLAB llamada mean. Si z es un vector de los enteros desde 1 a 99, i.e.,

z = 1:99;

entonces, el valor promedio es encontrado escribiendo

mean(z)

que resultaría en

ans =
50

Veamos algunos detalles de mean.m:

La primera línea declara el nombre de la función, los argumentos de entrada, y los argumentos de salida. Sin esta línea sería un archivo de comando.

% indica que el resto de la línea es un comentario.

Las primeras líneas documentan el archivo-M y aparecen en la pantalla cuando escribimos help mean.

Las variables m, n, y y son locales a mean y no existen en el espacio de trabajo. (O si existen, permanecen sin cambios.)

No es necesario asignar los enteros de 1 al 99 en la variable x. Utilizamos mean con una variable llamada z. Este vector que contenía los enteros de 1 a 99 fue pasado ó copiado a mean donde se convirtió en una variable local llamada x.

Como mejorar la Rapidez y uso de Memoria de los Programas

Para que los programas en MATLAB ejecuten más rápido, debemos vectorizar estos siempre que sea posible. Esto es, debemos convertir los ciclos for y while a operaciones de vectores ó de matrices. Por ejemplo, un modo de calcular la función "sin" para 1001 números entre 1 y 10 es:

i = 0;
for t = 0:.01:10
i = i + 1;
y(i) = sin(t);
end

Una versión vectorizada del mismo código es

t = 0:.01:10; y = sin(t);

En una computadora lenta, el primer ejemplo tomó 15 segundos, mientras que el segundo tomó 0.6 segundos.

Vectores Pre-Asignados

Si no podemos vectorizar un pedazo de código, podemos hacer que los ciclos for vayan más rápido pre-asignando cualquier vector en el cual el resultado de salida sea guardado. Veamos un ejemplo:

y = zeros (1,100);
for i = 1:100
y(i) = det(X^i);
end

Si no pre-asignamos el vector "y", el interpretador de MATLAB irá aumentando el tamaño de "y" por uno cada vez que se itera en el ciclo.

Archivos de Disco

Manipulación de Archivos de Disco

Algunos comandos utilizados para la manipulación de archivos de disco son dir, type, delete y cd. Si la extención no se especifica, MATLAB utiliza .m automáticamente. El comando diary crea un diario de tu sesión de MATLAB en un archivo de disco. Para más información utiliza la Guía de Referencia de MATLAB ó el comando help.

Ejecutando Programas Externos

El simbolo "!" le indica a MATLAB que el resto de la línea de entrada es un comando para el sistema operativo. Por ejemplo,

! edt darwin.m

invoca un editor llamado edt en un archivo llamado darwin.m. Luego que este programa sea completado, el sistema operativo devuelve el control a MATLAB.

Importando y Exportando Datos

Puedes introducir datos de otros programas a MATLAB por varios métodos. Similarmente, puedes exportar datos de MATLAB a otros programas. También puedes hacer que tus programas manipulen datos directamente en archivos-MAT, el cúal es el formato de archivo utilizado por MATLAB. Para información acerca de las técnicas utilizadas para importar y exportar datos consulte la sección de Importando y Exportando Datos de la guía de MATLAB ó utilice al comando help de MATLAB.