Académique Documents
Professionnel Documents
Culture Documents
Algoritmos y estructura de
datos
Comandos básicos de MatLAB
Contenido
Qué es MatLab? .............................................................................................................................. 3
Puntos a considerar......................................................................................................................... 3
Operadores aritméticos .................................................................................................................. 3
Operadores relacionales ................................................................................................................. 3
Operadores lógicos ......................................................................................................................... 4
Funciones matemáticas elementales que operan de modo escalar............................................... 4
Input ................................................................................................................................................ 5
fprintf .............................................................................................................................................. 5
disp .................................................................................................................................................. 6
if....................................................................................................................................................... 7
Switch-case...................................................................................................................................... 7
for-end............................................................................................................................................. 8
while-end......................................................................................................................................... 9
return .............................................................................................................................................. 9
break................................................................................................................................................ 9
Definición de matrices desde teclado ............................................................................................. 9
2
Algoritmos y estructura de datos 2011
Qué es MatLab?
MATLAB, de las palabras: "MATrix LABoratory" o en español “Laboratorio de Matrices”.
Este programa fue inicialmente escrito con el objetivo de proveer a los científicos e
ingenieros acceso interactivo a las librerías de cálculo numérico LINPACK y EISPACK. Estas
librerías, que fueron cuidadosamente probadas, son paquetes de programación de alta
calidad para resolver ecuaciones lineales y problemas de eigenvalores. MATLAB está
basado en el uso de técnicas basadas en álgebra de matrices para resolver problemas, sin
tener que escribir los programas en un lenguaje tradicional como C++ o Fortran.
Puntos a considerar
Todos los comandos de Matlab se escriben en minúsculas.
Los argumentos se envían entre paréntesis separados por comas.
El carácter % se utiliza para insertar comentarios. Todo lo que sigue (en la misma
línea) es ignorado por Matlab.
Si se teclea al final de una instrucción ’;’ ´esta se ejecuta pero el resultado no se
visualiza por pantalla.
Dos comandos se pueden insertar en la misma línea separados por “,” o por “;”.La
diferencia entre los dos es que con “,” se muestran los resultados de las
operaciones mientras que con “;” la operación se ejecuta pero no se visualiza.
Se utiliza el signo de = para asignación y == para comparación.
Operadores aritméticos
+ Adición o suma
– Sustracción o resta
* Multiplicación
' Traspuesta
^ Potenciación
\ División-izquierda
/ División-derecha
* Producto elemento a elemento
/ y \ División elemento a elemento
^ Elevar a una potencia elemento a elemento
Operadores relacionales
El lenguaje de programación de MATLAB dispone de los siguientes operadores
relacionales:
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
3
Algoritmos y estructura de datos 2011
== Igual que
~= Distinto que
Operadores lógicos
Los operadores lógicos de MATLAB son los siguientes:
& and (función equivalente: and (A,B)). Se evalúan siempre ambos operandos, y el
resultado es true sólo si ambos son true.
&& and breve: si el primer operando es false ya no se evalúa el segundo, pues el resultado
final ya no puede ser más que false.
| or (función equivalente: or (A,B)). Se evalúan siempre ambos operandos, y el resultado
es false sólo si ambos son false.
|| or breve: si el primer operando es true ya no se evalúa el segundo, pues el resultado
final no puede ser más que true.
~ negación lógica (función equivalente: not (A)).
xor(A,B) realiza un "or exclusivo", es decir, devuelve 0 en el caso en que ambos sean 1 ó
ambos sean 0.
4
Algoritmos y estructura de datos 2011
Input
Permite imprimir un mensaje en la línea de comandos de MATLAB y recuperar como valor
de retorno un valor numérico o el resultado de una expresión tecleada por el usuario.
Ejemplo:
>> n = input('Teclee el número de ecuaciones')
En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar, con lo que
se almacena en la cadena nombre. Así pues, en este caso, si se teclea una fórmula, se
almacena como texto sin evaluarse.
fprintf
Dirige su salida formateada hacia el fichero indicado por el identificador, su forma general
es:
fprintf(fi,’cadena de control',var1,var2,...)
5
Algoritmos y estructura de datos 2011
Formato de salida
Carácter Descripción
%c Carácter
%d Notación decimal (con signo)
%e Notación exponencial (usando minúscula e ejemplo: 3.1415e+00)
%E Notación exponencial (usando mayúscula E ejemplo: 3.1415E+00)
%f Punto flotante
%o Notación octal (sin signo)
%s Cadena de caracteres
%u Notación decimal (sin signo)
%x Notación hexadecimal (usando letras minúsculas a-f)
%X Notación hexadecimal (usando letras mayúsculas A-F)
%g El más compacto de %e o %f
%G Lo mismo que %g, pero utilizando mayúscula E
Carácter de escape
Carácter Descripción
\n Nueva línea
\t Tab horizontal
\b Espacio en blanco
\r Return
\\ Barra
%% Carácter de porcentaje
Ejemplo:
fprintf('El número de ecuaciones es: %d\n',n)
fprintf('El determinante es: %f10.4\n',n)
fprintf(‘%g\n’,i);
disp
La función disp permite imprimir en pantalla un mensaje de texto o el valor de una matriz,
pero sin imprimir su nombre. En realidad, disp siempre imprime vectores y/o matrices: las
cadenas de caracteres son un caso particular de vectores.
Ejemplo:
>> disp('El programa ha terminado')
>> A=rand(4,4)
>> disp(A)
6
Algoritmos y estructura de datos 2011
if
En su forma más simple, la sentencia if se escribe en la forma siguiente:
if condicion
sentencias
end
if condicion1
sentencias1
elseif condicion2
sentencias2
elseif condicion3
sentencias3
else % opción por defecto para cuando no se cumplan las condiciones 1,2,3
sentenciasN
end
Donde la opción por defecto else puede ser omitida: si no está presente no se hace nada
en caso de que no se cumpla ninguna de las condiciones que se han chequeado.
Switch-case
La sentencia switch realiza una función análoga a un conjunto de if...elseif concatenados.
Su forma general es la siguiente:
switch switch_expresion
case case_expr1,
bloque1
case {case_expr2, case_expr3, case_expr4,...}
bloque2
...
otherwise, % opción por defecto
bloqueN
end
7
Algoritmos y estructura de datos 2011
for-end
La sentencia for repite un conjunto de sentencias un número predeterminado de veces. La
siguiente construcción ejecuta sentencias con valores de i de 1 a n, variando de uno en
uno.
for i=1:n
sentencias;
end
o bien,
for i=vectorValores
sentencias;
end
Donde vectorValores es un vector con los distintos valores que tomará la variable i.
Ejemplo:
El bucle se ejecuta por primera vez con i=n, y luego i se va reduciendo de 0.2 en 0.2 hasta
que llega a ser menor que 1, en cuyo caso el bucle se termina:
for i=n:-0.2:1
sentencias;
end
for i=1:m
for j=1:n
sentencias;
end
end
Una última forma de interés del bucle for es la siguiente (A es una matriz):
for i=A
sentencias;
end
8
Algoritmos y estructura de datos 2011
while-end
La estructura del bucle while es muy similar a la de C/C++/Java. Su sintaxis es la siguiente:
Ejemplo:
c=1000;
while c>2
c=c/2;
end
Donde condicion puede ser una expresión vectorial o matricial. Las sentencias se siguen
ejecutando mientras haya elementos distintos de cero en condicion, es decir, mientras
haya algún o algunos elementos true. El bucle se termina cuando todos los elementos de
condicion son false (es decir, cero).
return
Las funciones devuelven el control después de que se ejecute la última de sus sentencias.
La sentencia return, incluida dentro del código de una función.
Ejemplo:
if nargin==1
disp('Error: solo un argumento');
return;
end
break
Al igual que en C/C++/Java, la sentencia break hace que se termine la ejecución del bucle
for y/o while más interno de los que comprenden a dicha sentencia.
9
Algoritmos y estructura de datos 2011
Para definir una matriz no hace falta declararlas o establecer de antemano su tamaño (de
hecho, se puede definir un tamaño y cambiarlo posteriormente). MATLAB determina el
número de filas y de columnas en función del número de elementos que se proporcionan
(o se utilizan). Las matrices se definen o introducen por filas; los elementos de una misma
fila están separados por blancos o comas, mientras que las filas están separadas por
pulsaciones intro o por caracteres punto y coma (;).
Inicialización de vectores
>> x =[1,2,3] (Vector de 3 elementos)
>> x =[1 2 3 5 7 11 13]; (Vector de 7 elementos)
>> x =1:5; -> x =[1 2 3 4 5] (Vector de 5 elementos)
>> x =2:2:10; -> x =[2,4,6,8,10] (Vector de 5 elementos)
>> x =9:-2:1; -> x =[9,7,5,3,1] (Vector de 5 elementos)
Inicialización de matrices
>> A=[1 2 3; 4 5 6; 7 8 9] (Matriz de dimensión (3×3))
A= 1 2 3
4 5 6
7 8 9
10