La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.
Expresiones
Variables
Al igual que la mayoría de los otros lenguajes de programación, el lenguaje de MATLAB® ofrece expresiones matemáticas, pero, a diferencia de la mayor parte de los lenguajes, estas expresiones incluyen matrices completas.
MATLAB no requiere que se declaren los tipos o tamaños de las variables. Cuando MATLAB encuentra el nombre de una nueva variable, la crea de forma automática y asigna la cantidad de almacenamiento apropiada. Si la variable ya existe, MATLAB cambia su contenido y, de ser necesario, asigna más espacio de almacenamiento. Por ejemplo,
num_students = 25
crea una matriz de 1 por 1 llamada num_students
y almacena el valor 25 en su único elemento. Para ver la matriz asignada a cualquier variable, tan solo introduzca el nombre de la variable.
Los nombres de las variables constan de una letra, seguida de cualquier cantidad de letras, dígitos o guiones bajos. MATLAB distingue entre letras mayúsculas y minúsculas. A
y a
no constituyen la misma variable.
Aunque los nombres de variables pueden tener cualquier longitud, MATLAB usa solo los primeros N
caracteres del nombre (donde N
es el número generado por la función namelengthmax
) e ignora el resto. Por consiguiente, es importante que cada nombre de variable sea único en los primeros N
caracteres para que MATLAB pueda distinguir correctamente las variables.
N = namelengthmax N = 63
Números
Para números, MATLAB usa notación decimal convencional, con punto decimal opcional y un signo "más" o un signo "menos" antepuesto. En la notación científica se usa la letra e
para especificar una potencia de 10 como factor de escala. Los números imaginarios usan i
o j
como sufijo. A continuación, se enumeran algunos ejemplos de números válidos:
3 -99 0.0001 9.6397238 1.60210e-20 6.02252e23 1i -3.14159j 3e5i
MATLAB almacena todos los números internamente usando el formato largo especificado por el estándar de punto flotante IEEE®. Los números de punto flotante tienen una precisión finita de aproximadamente 16 dígitos decimales significativos y un rango finito que va aproximadamente de 10-308 a 10+308.
Los números que se representan en el formato doble tienen una precisión máxima de 52 bits. Cualquier doble que requiera más de 52 bits pierde algo de precisión. Por ejemplo, el siguiente código muestra cómo dos valores desiguales son idénticos porque ambos están truncados:
x = 36028797018963968; y = 36028797018963972; x == y ans = 1
x = uint64(36028797018963968); y = uint64(36028797018963972); x == y ans = 0
MATLAB almacena las partes reales e imaginarias de un número complejo. El software trata la magnitud de las partes de diferentes formas según el contexto. Por ejemplo, la función sort
ordena valores usando la magnitud y resuelve empates usando el ángulo de fase.
sort([3+4i, 4+3i]) ans = 4.0000 + 3.0000i 3.0000 + 4.0000i
Esto se debe al ángulo de fase:
angle(3+4i) ans = 0.9273 angle(4+3i) ans = 0.6435
El operador relacional “igual a”, ==
), requiere que tanto las partes reales como las imaginarias sean iguales. Los otros operadores relacionales binarios, >
, <
, >=
y <=
, ignoran la parte imaginaria del número y consideran solo la parte real.
Operadores de matrices
Las expresiones usan operadores aritméticos y reglas de precedencia familiares.
| Adición |
- | Sustracción |
| Multiplicación |
| División |
| División izquierda |
| Potencia |
| Trasposición conjugada compleja |
| Especifican el orden de evaluación |
Operadores de arreglos
Cuando se extraen del mundo del álgebra lineal, las matrices se convierten en arreglos numéricos bidimensionales. En los arreglos, las operaciones aritméticas se realizan elemento por elemento. Esto significa que la adición y la sustracción funcionan de la misma manera para arreglos y matrices, pero que las operaciones multiplicativas son diferentes. MATLAB utiliza un punto, o punto decimal, como parte de la notación para las operaciones multiplicativas de los arreglos.
La lista de operadores incluye:
| Adición |
| Sustracción |
| Multiplicación elemento por elemento |
| División elemento por elemento |
| División izquierda elemento por elemento |
| Potencia elemento por elemento |
| Trasposición de arreglo no conjugada |
Si el cuadrado mágico de Durero se multiplica por sí mismo con la multiplicación de arreglos,
A.*A
el resultado es un arreglo que contiene los cuadrados de los números enteros del 1 al 16, en un orden inusual:
ans = 256 9 4 169 25 100 121 64 81 36 49 144 16 225 196 1
Creación de tablas
Las operaciones con arreglos son útiles para crear tablas. Suponga que n
es el vector columna
n = (0:9)';
Entonces,
pows = [n n.^2 2.^n]
crea una tabla de cuadrados y potencias de 2:
pows = 0 0 1 1 1 2 2 4 4 3 9 8 4 16 16 5 25 32 6 36 64 7 49 128 8 64 256 9 81 512
En los arreglos, las funciones matemáticas elementales funcionan elemento por elemento. Por lo tanto,
format short g x = (1:0.1:2)'; logs = [x log10(x)]
crea una tabla de logaritmos.
logs = 1.0 0 1.1 0.04139 1.2 0.07918 1.3 0.11394 1.4 0.14613 1.5 0.17609 1.6 0.20412 1.7 0.23045 1.8 0.25527 1.9 0.27875 2.0 0.30103
Funciones
MATLAB proporciona una gran cantidad de funciones matemáticas elementales estándar, incluidas abs
, sqrt
, exp
y sin
. Tomar la raíz cuadrada o el logaritmo de un número negativo no es un error; el resultado complejo apropiado se produce automáticamente. MATLAB también ofrece muchas funciones matemáticas más avanzadas, como las funciones de Bessel y la función gamma. La mayoría de estas funciones acepta argumentos complejos. Para obtener una lista de las funciones matemáticas elementales, escriba
help elfun
Para obtener una lista de funciones matemáticas y matriciales más avanzadas, escriba
help specfun help elmat
Algunas de las funciones, como sqrt
y sin
, están integradas. Las funciones integradas forman parte del núcleo de MATLAB y por eso son muy eficientes, pero los detalles computacionales no son accesibles fácilmente. Otras funciones están implementadas en el lenguaje de programación de MATLAB; por lo tanto, sí se pueden ver sus detalles computacionales.
Existen algunas diferencias entre las funciones integradas y las demás funciones. Por ejemplo, en el caso de las funciones integradas, no se puede ver el código. En otras funciones, el código es visible e incluso se puede modificar.
Existen varias funciones especiales que proporcionan valores de constantes útiles.
3.14159265... | |
Unidad imaginaria, | |
Igual que | |
Precisión relativa de punto flotante, | |
El menor número de punto flotante, | |
El mayor número de punto flotante, | |
Infinito | |
No es un número |
El infinito se genera mediante la división por cero de un valor distinto de cero, o mediante la evaluación de expresiones matemáticas bien definidas que alcanzan un desbordamiento, es decir, exceden el valor máximo realmax
. El valor "no es un número" se genera al intentar evaluar expresiones como 0/0
o Inf
-Inf
que no tienen valores matemáticos bien definidos.
Los nombres de las funciones no están reservados. Es posible sobrescribir cualquiera de ellos con una nueva variable, como por ejemplo,
eps = 1.e-6
y luego usar ese valor en cálculos posteriores. La función original se puede restaurar con
clear eps
Ejemplos de expresiones
Ya ha visto varios ejemplos de expresiones de MATLAB. A continuación, encontrará algunos ejemplos más, y los valores resultantes:
rho = (1+sqrt(5))/2 rho = 1.6180 a = abs(3+4i) a = 5 z = sqrt(besselk(4/3,rho-i)) z = 0.3730+ 0.3214i huge = exp(log(realmax)) huge = 1.7977e+308 toobig = pi*huge toobig = Inf