You are on page 1of 10

TUTORIAL MATLAB

Capítulo 1. Comandos Básicos de MATLAB.

1.1 Operaciones Básicas con Escalares.

Primero, hablemos de cómo agregar comentarios(tal como esta línea)


a un programa. Los comentarios son líneas de texto que queremos
agregar para explicar mejor lo que estamos haciendo, de tal manera
que otras personas pueden leer este código más tarde y podrán
entender mejor que hace el código. En un archivo de MATLAB, si un
signo porcentaje ,%, aparece en una fila de texto, todo el texto que
sigue a este signo es un comentario que MATLAB no tratará de
interpretarlo como comando.

Ahora escribamos un mensaje en la pantalla para decir que estamos


listos para correr la sección 1.1.

El comando disp(cadena de caracteres) muestra la cadena de


caracteres en la pantalla.

disp('Comienzo de la sección 1.1 ...')

ahora se define una variable x igual a 1

x=1

Este comando permite dos cosas: seleccionar un espacio en la


memoria para la variable x, si x no ha sido previamente definida, y
luego almacena el valor de 1 en la localización de memoria asociada
a esa variable. El comando también escribe "x = 1" en la pantalla.
Usualmente, uno no quiere saturar la pantalla con una salida como
esta y entonces nosotros podemos hacer que el comando sea
invisible terminándolo con un punto y coma. Como ejemplo, usemos
el siguiente comando para invisiblemente cambiar el valor de x en 2 y
que el resultado no aparezca en pantalla:

x=2;

Este comando cambia el valor de x pero no lo escribe

Luego podemos mostrar el valor de x tecleando “x” sin un punto y


coma.

Ahora, veamos como declarar otras variables en un orden específico:


y = 2*x; Esto inicializa el valor de y como dos veces el valor de x
x = x + 1; Esto incrementa el valor de x en 1.
z = 2*x; Esto declara otra variable z.

z no es igual a y porque el valor de x ha cambiado entre las veces


que declaramos cada variable. Declaremos ahora otra variable que
sea la diferencia de z y y.

diferencia = z - y

Ahora, nosotros deseamos ver la lista de las variables que están


almacenadas en memoria. Para hacer esto, se usa el comando “who”.

who;

Se puede conseguir más información tecleando “whos”.

whos;

Estos comandos pueden usarse también para obtener información de


solo ciertas variables.

whos z diferencia;

Ahora supongamos que deseamos eliminar la variable “diferencia”.


Esto se hace mediante el comando “clear”.

clear diferencia;
who;

Ahora, nosotros queremos eliminar las variables x y y. De nuevo


usamos el comando "clear".

clear x y;
who;

Generalmente, es una buena práctica de programación escribir un


comando en cada línea; sin embargo, MATLAB permite poner
múltiples comandos en una línea.

x = 5; y = 13; w = 2*x + y; who;

A menudo uno desea continuar un único comando a lo largo de varias


líneas debido a la longitud de la sintaxis. Esto se puede hacer
utilizando tres puntos seguidos.

z = 2*x + ...
y

Finalmente, cuando se usa “clear all” se pueden eliminar todas las


variables con este solo comando.
clear all;
who; No imprime nada porque ya no hay variables.

1.2. Operaciones Básicas con Vectores.

La manera más simple pero NO RECOMENDADA, para declarar una


variable vectorial es entrando los componentes o elementos uno a
uno.

x(1) = 1;
x(2) = 4;
x(3) = 6;
x muestra el contenido de x

Es generalmente mejor declarar todo el vector en un solo momento,


porque entonces MATLAB sabe desde el comienzo cuanta memoria
necesita apartar. Para vectores muy grandes, esto es muy eficiente.

y = [1 4 6] hace la misma tarea que el código anterior

Note que esta notación declara a un vector fila. Para obtener un


vector columna se pueden usar dos técnicas: Una es declararlo desde
el comienzo con la siguiente notación:

yT = [1; 4; 6];

Otra técnica es utilizar el operador “ ' “ que nos permite calcular la


transpuesta (en el caso de una matriz compleja, se obtendría la
adjunta)

xT = x'; toma la transpuesta de un vector fila real

Esto nos permite definir un vector columna desde el comienzo.

Para ver la diferencia en dimensiones de un vector columna vs. un


vector fila se usa el comando "size" que retorna las dimensiones de
un vector o de una matriz.

size(xT)
size(y)
size(yT)

El comando “length” trabaja tanto en vectores columnas como en


vectores fila.

length(x), length(xT)

Adicionar o substraer dos vectores es similar a lo que se hace con


escalares.
z=x+y
w = xT - yT

Multiplicar un vector por un escalar es fácil.

v = 2*x
c = 4;
v2 = c*x

Nosotros podemos usar el operador . para decirle a MATLAB que


realice una operación dada en una base de elemento por elemento.
Digamos que deseamos establecer que cada valor de y sea tal que
y(i) = 2*x(i) + z(i)^2 + 1. Entonces, nosotros podemos usar el
código

y = 2.*x + z.^2 + 1

El producto punto y el producto cruz de dos vectores se calculan


mediante:

dot(x,y)
z=cross(x,y)

Nosotros también podemos definir un vector usando la notación


[a : d : b]. Esto produce un vector a, a + d, a + 2*d, a + 3*d, ...
hasta que consigamos un entero n donde a + n*d > b. Observe los
dos ejemplos.

v = [0 : 0.1: 0.5];
v2 = [0 : 0.1: 0.49];

Si queremos un vector con N puntos igualmente espaciados desde a


hasta b, entonces se utiliza el comando "linspace(a,b,N)".

v2 = linspace(0,1,5)

Algunas veces nosotros queremos usar un vector para más tarde


pero deseamos que inicialmente sea cero y de esta manera se
reserve memoria para almacenar sus elementos. Por ejemplo

v = linspace(0,0,100)'; reserva memoria para un vector columna


de 100 ceros

Finalmente nosotros podemos usar variables de conteo enteras para


acceder a uno o mar elementos de una matriz.

v2 = [0 : 0.01 : 100]; c=v2(49) w = v2(65:70)

clear all
1.3. Operaciones Básicas con Matrices

Nosotros podemos declarar una matriz y darle los valores de sus


elementos.

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

También se pueden usar comas para separar los elementos de una


línea.

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

Nosotros podemos construir una matriz a partir de sus vectores filas:

row1 = [1 2 3];
row2 = [4 5 6];
row3 = [7 8 9];
C = [row1; row2; row3]

o también a partir de vectores columna:

column1 = [1; 4; 7];


column2 = [2; 5; 8];
column3 = [3; 6; 9];
D = [column1 column2 column3]

Varias matrices pueden unirse para crear una más grande.

M = [A B; C D]

Nosotros podemos extraer los vectores filas o vectores columna de


una matriz.

row1 = C(1,:)
column2 = D(:,2)

O, podemos fabricar un vector u otra matriz extrayendo un


subconjunto de los elementos de una matriz mayor.

v = M(1:4,1)
w = M(2,2:4)
C = M(1:4,2:5)

La transpuesta de una matriz real se obtiene con el operador '

D = A'
C, C'

Para una matriz compleja, el operador ' retorna la adjunta


(Transpuesta y conjugada). La operación conjugada se puede
remover utilizando el operador de solo transpuesta .'
E = D;
E(1,2) = E(1,2) + 3*i;
E(2,1) = E(2,1) - 2*i;
E', E.'

El comando "who" lista las matrices además de las variables


escalares y vectoriales

who

Si además nosotros queremos ver las dimensiones de cada variable,


entonces se de e usar el comando "whos". Esto nos dice el tamaño de
cada variable y la cantidad de memoria que cada una requiere.

whos

El comando "size" nos dice el tamaño de un matriz.

M = [1 2 3 4; 5 6 7 8; 9 10 11 12];
size(M)
num_rows = size(M,1)
num_columns = size(M,2)

Adicionar, substraer y multiplicar matrices es fácil.

D=A+B
D=A-B
D = A*B

Nosotros podemos declarar matrices en varias formas. Primero,


nosotros podemos crear una matriz con m filas y n columnas, todas
ellas conteniendo ceros; para esto se utiliza el comando “zeros(m,n)”

m=3;
n=4;
C = zeros(m,n)

Si queremos hacer una matriz cuadrada de n x n, solo se necesita


utilizar un solo índice.

C = zeros(n)

Nosotros podemos crear una matriz identidad, donde todos los


elementos son cero excepto para aquellos de la diagonal principal, los
cuales son iguales a 1.

D = eye(5)

Finalmente, nosotros podemos usar el operador . para ejecutar


operaciones elemento a elemento de la misma manera que hicimos
con los vectores. El siguiente comando crea una matriz C, tal que
C(i,j) = 2*A(i,j) + (B(i,j))^2.
C = 2.*A + B.^2

Las matrices pueden ser limpiadas de la memoria así como también


otras variables.

clear A B
whos
clear all
who

1.4. Uso de Cadenas de Caracteres

En MATLAB, cuando deseamos imprimir los resultados, a menudo


queremos explicar la salida con algún texto. Para esto, la cadena de
caracteres puede ser útil. En MATLAB, una cadena de caracteres se
escribe con el signo apóstrofo al principio y al final.

nombre_curso = 'Matemáticas Avanzadas en Ing. Química'

Para poner un apóstrofo dentro de una cadena de caracteres,


podemos repetirlo dos veces para evitar confundirlo con el operador '
que debe ir al final de la cadena de caracteres.

frase2 = 'Course''s name is : ';


disp(frase2), disp(nombre_curso)

Nosotros también podemos combinar cadenas de caracteres en una


forma similar a trabajar con vectores y matrices de números.

word1 = 'Curso';
word2 = 'Métodos';
word3='Numéricos';
phrase3 = [word1, word2, word3]

Vemos que esto no incluye espacios, de tal manera que podemos


usar lo siguiente:

frase4 = [word1, ' ', word2, ' ', word3]

Nosotros podemos convertir un entero a un carácter utilizando el


comando "int2str".

icount = 1234;
frase5 = ['Valor del contador = ', int2str(icount)]

De manera parecida nosotros podemos convertir un número de punto


flotante en una cadena de caracteres de k dígitos usando el comando
"num2str(number,k)".
Temp = 29.34372820092983674;
frase6 = ['Temperatura = ',num2str(Temp,5)]
frase7 = ['Temperatura = ',num2str(Temp,10)]

clear all

1.5. Operaciones Matemáticas Básicas

1.5.1. COMANDOS DE POTENCIACIÓN

Ya hemos visto como adicionar, substraer y multiplicar números.


También , en ocasiones, tenemos que usar el operador ^ donde x^y
significa elevar x a la potencia y.

2^3, 2^3.3, 2.3^3.3, 2.3^(1/3.3), 2.3^(-1/3.3)

La operación de raíz cuadrada es dada por su propio nombre.

sqrt(27), sqrt(37.4)

Los operaciones usados para analizar el signo de los números


incluyen

abs(2.3), abs(-2.3) retorna el valor absoluto de un número


sign(2.3), sign(-2.3), sign(0) retorna el signo de un número

Los comandos para tomar exponentes y logaritmos son:

a=exp(2.3) calcula e^x


log(a) calcula el logaritmos natural
log10(a) calcula el logaritmos en base 10

1.5.2. COMANDOS TRIGONOMETRICOS

El valor numérico de pi puede invocarse directamente

pi, 2*pi

Note que MATLAB calcula LOS ANGULOS EN RADIANES

Las funciones trigonométricas standard son

sin(0), sin(pi/2), sin(pi), sin(3*pi/2)


cos(0), cos(pi/2), cos(pi), cos(3*pi/2)
tan(pi/4), cot(pi/4), sec(pi/4), csc(pi/4)

Sus inversas son

asin(1),acos(1),atan(1),acot(1),asec(1),acsc(1)

Las funciones hiperbólicas son


sinh(pi/4), cosh(pi/4), tanh(pi/4), coth(pi/4)
sech(pi/4), csch(pi/4)

con inversas

asinh(0.5), acosh(0.5), atanh(0.5), acoth(0.5)


asech(0.5), acsch(0.5)

Estos operadores pueden usarse con vectores en la siguiente


manera:

x=linspace(0,pi,6) crea un vector x de 6 valores entre 0 y pi


y=sin(x) para cada y(i) = sin(x(i))

1.5.3. OPERACIONES DE REDONDEO

round(x) : retorna el entero más cercano al número real x

round(1.1), round(1.8)

fix(x) : retorna el entero más cercano a x en la dirección hacia 0

fix(-3.1), fix(-2.9), fix(2.9), fix(3.1)

floor(x) : retorna el entero más cercano menor o igual a x

floor(-3.1), floor(-2.9), floor(2.9), floor(3.1)

ceil(x) : retorna el entero más cercano mayor o igual a x

ceil(-3.1), ceil(-2.9), ceil(2.9), ceil(3.1)

rem(x,y) : retorna el residuo de la división entera x/y

rem(3,2), rem(898,37), rem(27,3)

mod(x,y) : calcula el módulo, residuo de la división real

mod(28.36,2.3)

1.5.4. NUMEROS COMPLEJOS

Un número complejo es declarado usando i (o j) en lugar de la raíz


cuadrada de -1.

z = 3.1-4.3*i
conj(z) retorna el conjugado, conj(a+ib) = a - ib
real(z) retorna la parte real de z, real(a+ib) = a
imag(z) retorna la parte imaginaria de z, imag(a+ib) = b
abs(z) retorna el valor absoluto (módulo), a^2+b^2
angle(z) retorna el ángulo de fase teta with z = r*exp(i*teta)
abs(z)*exp(i*angle(z)) retorna z
Para matrices complejas, el operador ' calcula la matriz adjunta, i.e.
se halla la transpuesta de la matriz y se toma el conjugado de cada
elemento

A = [1+i, 2+2*i; 3+3*i, 4+4*i]


A' toma la conjugada transpuesta (operación adjunta)

A.' Toma solo la transpuesta sin tomar el conjugado de los elementos

1.5.6. TRANSFORMACIONES DE COORDENADA

Las coordenadas polares 2-D (theta,r) están relacionadas con las


coordenadas cartesianas por medio de

x=1; y=1;
[theta,r] = cart2pol(x,y)
[x,y] = pol2cart(theta,r)

Coordenadas esféricas en 3-D (alpha,theta,r) son obtenidas de las


coordenadas Cartesianas mediante

x=1; y=1; z=1;


[alpha,theta,r] = cart2sph(x,y,z)
[x,y,z] = sph2cart(alpha,theta,r)

clear all

You might also like