Está en la página 1de 12

El espacio de trabajo

Cuando se trabaja en la ventana de comandos, MATLAB recuerda las órdenes introducidas y los valores de
cualquier variable creada. Estas órdenes y variables residen en el denominado espacio de trabajo de MATLAB.

Para recordar las órdenes se utilizan las teclas ¬, ®, -, ¯ del teclado, de manera similar a su utilización en el
sistema operativo Windows. También se puede emplear el ratón para cortar, copiar, pegar y editar el texto.

Todas las variables almacenadas se pueden visualizar simplemente escribiendo su nombre y ejecutándolo.

Además todas las variables que hay en un instante en el espacio de trabajo son listados con la orden who. Una
variante es whos, que suministra además de los nombres, su tamaño, número de elementos, el espacio de
memoria que ocupa, la densidad y si es compleja o real. Cada dato elemental ocupa 8 bytes de memoria.

Al terminar una sesión de trabajo en MATLAB, se pierden las variables del espacio de trabajo. Si se quiere
salvar el estado para una próxima sesión se usa save.

Las variables quedan almacenadas en un fichero llamado MATLAB.mat, en un formato propio de MATLAB.
Para recuperar dichas variables en una sesión posterior se empleará load:

Se puede añadir al comando otro nombre de fichero diferente:

>> save temp

>> load temp

También es posible especificar el nombre de una o varias variables que sean las únicas que se desean salvar y
recuperar posteriormente:

>> save temp manzanas

>> save temp manzanas platanos peras

Existen variantes de estas órdenes para guardar y recuperar datos en formato ASCII, y también para trabajar
con formatos avanzados de datos compatibles con el lenguaje C.

Se pueden borrar todas las variables del espacio de trabajo con

>> clear

Si se desea borrar del espacio de trabajo solamente algunas variables, se enumeran después de clear:

>> clear platanos peras

Gestionando variables y espacio de trabajo

Eliminar objetos de memoria: clear.

 clear borra todas las variables del espacio de trabajo

 clear nombre borra la variable nombre del espacio de trabajo

 clear nombre1 nombre2 nombre3... borra todas las variables nombradas del espacio de trabajo.

 clear functions borra todas las funciones .m compiladas en memoria.


 clear variables borra todas las variables del espacio de trabajo

 clear mex borra todos los .mex del espacio de trabajo

 clear global borra todas las variables globales del espacio de trabajo

 clear all borra todas las variables, funciones y ficheros .mex de memoria.

Mostrar matrices o texto: disp. disp(a) muestra una matriz sin imprimir su nombre. Si a contiene texto, este
también se muestra.

Longitud de un vector: length. length(a) devuelve la longitud del vector a. Es equivalente a max(size(a)).

Carga variables desde un fichero: load.

 load carga todas las variables del fichero MATLAB.mat

 load nombrefichero carga todas las variables del fichero nombrefichero.mat

 load nombrefichero.ext carga todas las variables del nombrefichero.ext

Defragmenta el espacio de memoria: pack. Si se obtiene un mensaje de Out of memory, el comando pack puede
ayudarnos a liberar algo de memoria, sin tener que borrar variables pues libera el espacio comprimiendo la
información en el mínimo espacio de memoria posible. Puesto que MATLAB utiliza un método de heap para la
gestión de memoria, es normal que a lo largo de una sesión la memoria se vaya fragmentando. En ese caso,
puede haber suficiente espacio libre, pero al no estar contiguo, no se puede almacenar una variable que
necesite todo ese espacio. El comando pack:

 Salva a disco todas las variables al fichero pack.tmp

 Borra todas las variables y funciones de memoria

 Carga nuevamente todas las variables desde pack.tmp

 Borra el fichero temporal pack.tmp

pack nombrefichero: Utiliza nombrefichero en lugar de pack.tmp Si después de utilizar pack sigue dando errores
de memoria, será necesario borrar algunas variables. Si el sistema da frecuentes errores de memoria se puede
arreglar por dos vías:

1. Incrementar la memoria del sistema

2. Incrementar el espacio de swap.

Salva el espacio de trabajo a disco: save.

 save almacena todas las variables del espacio de trabajo en un fichero llamado MATLAB.mat

 save nombrefichero almacena las variables en un fichero llamado nombrefichero.mat


 save nombrefichero variables almacena únicamente las variables descritas en la línea de comando.

 save nombrefichero variables opciones se utiliza para guardar el fichero con alguna de las opciones
siguientes:

o -ascii utiliza un formato ASCII de 8 dígitos

o -ascii -double utiliza un formato ASCII de 16 dígitos.

o -tabs utiliza el tabulador como elemento de separación, en lugar de espacios en blanco.

Dimensiones de las matrices: size. size(a) devuelve un vector con dos componentes enteros, el número de filas y
el número de columnas.

 [fila,columna] size(a) devuelve los dos enteros en variables separadas.

 fila size(a,1) devuelve la dimensión de las filas

 columna size(a,2). Devuelve la dimensión de las columnas.

Lista las variables del espacio de trabajo en memoria: who.

 who lista las variables que se encuentran en memoria actualmente

 who global lista las variables globales en memoria

Lista las variables que tienen parte imaginaria distinta de cero: whos.

 whos muestra las variabes, sus tamaños y si tienen parte imaginaria o no

 whos global lista las variables globales.

Operaciones aritméticas básicas

En el cuadro siguiente se ilustra las operaciones aritméticas básicas, el símbolo que emplea MATLAB y un
ejemplo:

Operación Símbolo Ejemplo

Suma + 3+6

Resta – 12 – 7.5

Multiplicación * 23.2 * 5.12

División/ 77 / 51

Potencia ^ 5^2

El orden en que estas operaciones se evalúan en una expresión está dada por la siguiente regla de precedencia:
Las expresiones se evalúan de izquierda a derecha,

con la operación de potencia teniendo el orden de precedencia más alto,

seguido por multiplicación y división que tienen ambas igual precedencia

y seguidas finalmente, por la suma y resta que tiene igual precedencia.

Se pueden emplear paréntesis para alterar esta usual ordenación, en cuyo caso la evaluación se inicia dentro del
paréntesis más interno y procede hacia fuera.

Ejercicios:

a) 2 ^ 3 – 5 – 6 / 3 * 2

b) 2 ^ 3 – 5 – 6 / (3 * 2)

c) (2 ^ 3 – 5 – 6) / 3 * 2

MATLAB operadores

❮ AnteriorSiguiente Capítulo ❯

Un operador es un símbolo que indica al compilador para realizar manipulaciones matemáticas o lógicas
específicas. MATLAB está diseñado para funcionar principalmente en matrices de enteros y matrices. Por lo
tanto, los operadores en MATLAB trabajan tanto en los datos escalares y no escalares. MATLAB permite los
siguientes tipos de operaciones elementales -

 Operadores aritméticos

 Operadores relacionales

 Operadores logicos

 operaciones bit a bit

 las operaciones Set

Operadores aritméticos

MATLAB permite dos tipos diferentes de operaciones aritméticas -


 operaciones aritméticas con matrices

 operaciones aritméticas gama

Matrix operaciones aritméticas son como se han definido en el álgebra lineal. operaciones de matriz se
elemento ejecutados por elemento, tanto en matriz unidimensional y multidimensional.

Los operadores de la matriz y los operadores de la matriz se diferencian por el período (.) Símbolo. Sin embargo,
como la operación de suma y resta es el mismo para matrices y matrices, el operador es el mismo para ambos
casos. La siguiente tabla ofrece una breve descripción de los operadores -

Mostrar ejemplos

Operador Descripción

+ Además, más o unario. A + B agrega los valores almacenados en las variables A y B. A y B deben tener el mis
menos que uno es un escalar. A escalar se puede añadir a una matriz de cualquier tamaño.

- La resta o menos unitario. AB resta el valor de B de A. A y B deben tener el mismo tamaño, a menos que uno
escalar se puede restarse de una matriz de cualquier tamaño.

* La multiplicación de matrices. C = A * B es el producto algebraica lineal de las matrices A y B. Más precisame

Para no escalares A y B, el número de columnas de A debe ser igual al número de filas de B. A escalar puede
matriz de cualquier tamaño.

.* la multiplicación de matriz. A. * B es el producto de elemento por elemento de una de las matrices A y B. A y


mismo tamaño, a menos que uno de ellos es un escalar.

/ Raya vertical o matriz división derecha. B / A es más o menos lo mismo que B*inv(A) . Más precisamente, B /

./ división de la derecha matriz. A./B es la matriz con elementos de A(i,j) / B (i, j). A y B deben tener el mismo t
que uno de ellos es un escalar.

\ Backslash o matriz de la izquierda división. Si A es una matriz cuadrada, A \ B es aproximadamente el mismo


excepto que se calcula de una manera diferente. Si A es una matriz de n por n y B es un vector columna con
una matriz con varias de estas columnas, entonces X = A \ B es la solución a la ecuación AX = B . Un mensaje
A es mal escalado o casi singular.

.\ Hilera izquierda división. A. \ B es la matriz con elementos B(i,j) / A (i, j). A y B deben tener el mismo tamaño
de ellos es un escalar.
^ Matriz de la energía. X ^ p es X a la potencia p, si p es un escalar. Si p es un número entero, la potencia se ca
cuadrado repetido. Si el número entero es negativo, X se invierte primero. Para otros valores de p, el cálculo
propios y los vectores propios, de manera que si [V, D] = eig(X) , entonces X ^ p = V * D. ^ p / V.

.^ alimentación de la matriz. A. ^ B es la matriz con elementos de A(i,j) a la B(i,j) de potencia. A y B deben tene
tamaño, a menos que uno de ellos es un escalar.

' transpuesta de la matriz. A' es la transpuesta algebraica lineal de A. Para matrices complejas, esta es la trans
compleja.

.' transpuesta de matriz. UN.' es la matriz traspuesta de A. Para matrices complejas, esto no implica la conjuga

Operadores relacionales

Los operadores relacionales también pueden trabajar en ambos datos no escalares y escalar. Los operadores
relacionales para matrices realizan comparaciones elemento por elemento entre dos matrices y devolver una
matriz lógica del mismo tamaño, con elementos fijados a 1 lógico (true) en donde la relación es verdadera y
elementos establecidos a lógica 0 (false) donde es no.

La siguiente tabla muestra los operadores relacionales disponibles en MATLAB:

Mostrar ejemplos

Operador Descripción

< Menos que

<= Menos que o igual a

> Mas grande que

>= Mayor qué o igual a

== Igual a

~= No igual a

Operadores logicos

MATLAB ofrece dos tipos de operadores y funciones lógicas:

 Element-sabia - Estos operadores operan sobre los elementos de las matrices lógicas correspondientes.
 Cortocircuito - Estos operadores operan en escalares y, expresiones lógicas.

operadores lógicos elemento a elemento operan elemento por elemento en matrices lógicas. Los símbolos y, |,
y ~ son los operadores lógicos de matriz AND, OR y NOT.

operadores lógicos de cortocircuito permiten cortocircuitos en las operaciones lógicas. Los símbolos && y || son
los operadores de cortocircuito lógicos AND y OR.

Mostrar ejemplos

operaciones bit a bit

operadores de bits funcionan en los bits y realizar operación de bit por bit. Las tablas de verdad para y, | y ^ son
los siguientes -

pag q p&q p|q p^q

0 0 0 0 0

0 1 0 1 1

1 1 1 1 0

1 0 0 1 1

Supongamos que si A = 60; y B = 13; Ahora en formato binario que serán los siguientes:

A = 0011 1100

B = 0000 1101

-----------------

A & B = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~ A = 1100 0011

MATLAB proporciona varias funciones para operaciones bit a bit como 'bit a bit y', 'o bit a bit' y 'bit a bit no'
operaciones, operación de desplazamiento, etc.

La siguiente tabla muestra las operaciones bit a bit de uso común:

Mostrar ejemplos

Propósito
AND de bits de enteros a y b

Complemento bit a bit de a

Obtener bit en la posición especificados pos , en el número entero array a

Bit a bit OR de enteros a y b

Bit establecido en ubicación específica pos de a

Devuelve a desplazado a la izquierda por k bits de, equivalente a multiplicar por 2 k. Los valores negativos de k corresponden a los cambios de bits de
derecha o dividiendo por 2 | k | y redondeando al entero más cercano hacia el infinito negativo. Cualquier bit de desbordamiento se truncan.

XOR bit a bit de los enteros a y b

Intercambio de bytes de pedidos

las operaciones Set

MATLAB proporciona varias funciones para operaciones de conjunto, como unión, intersección y las pruebas de
calidad de miembro determinada, etc.

La siguiente tabla muestra algunas operaciones con el conjunto de uso común -

Mostrar ejemplos

Función Descripción

intersect(A,B) Establecer intersección de dos matrices; Devuelve los valores comunes a ambos A y B. Los va
están en el orden establecido.

intersect(A,B,'rows') Se usa para tratar cada fila de A y cada fila de B como entidades individuales y devuelve las fi
ambos A y B. Las filas de la matriz devuelta son en orden clasificado.

ismember(A,B) Devuelve una matriz del mismo tamaño que A, que contiene 1 (true) en donde los elementos
encuentran en B. Por otra parte, devuelve 0 (false) .

ismember(A,B,'rows') Se usa para tratar cada fila de A y cada fila de B como entidades individuales y devuelve un ve
1 (true) en donde las filas de la matriz A son también filas de B. Por otra parte, devuelve 0 (fa

issorted(A) Devuelve 1 lógico (true) si los elementos de A son en orden clasificado y lógico 0 (false) lo con
A puede ser un vector o un N-por-1 o 1-por-N matriz de células de cadenas. A is considered t
la salida de sort(A) son iguales.
issorted(A, 'rows') Devuelve 1 lógico (true) si las filas de dos dimensiones de la matriz A es en orden clasificado,
contrario. Matrix A is considered to be sorted if A y la salida del sortrows(A) son iguales.

setdiff(A,B) Establece la diferencia de dos matrices; devuelve los valores en una que no están en B. Los va
devuelta están en orden clasificado.

setdiff(A,B,'rows') Se usa para tratar cada fila de A y cada fila de B como entidades individuales y devuelve las fi
están en B. Las filas de la matriz devuelta son en orden clasificado.

La opción 'filas' no es compatible con redes de celdas.

setxor Establece OR exclusivo de dos matrices

union Conjuntos de unión de dos matrices

unique valores únicos en array

Almacenar y Recuperar datos


Este programa permite guardar y cargar datos de los archivos del computador. En el menú File, la
opción Save Workspace as… guarda todas las variables actuales con el nombre deseado en un
espacio; y en Import Data… carga variables de un espacio de trabajo guardado previamente.

Si se quiere guardar toda la sesión en un archivo, basta usar el comando “diary” nombre archivo.
Dicho archivo contendrá los comandos introducidos y los correspondientes resultados. Cuando no
se quiera seguir almacenando la información se introducir “diary off”.

Si se desean almacenar todas las variables de memoria en un fichero, junto con sus valores
actuales, se usa el comando “save” nombre-fichero. Esto crea un fichero binario en el directorio
de trabajo actual con el nombre introducido y con extensión .mat. En el caso de no ofrecerse el
nombre del fichero, el propio programa crea uno llamado matlab.mat.

» save % al teclear esto sin ningún nombre, automáticamente se crea un fichero


llamado matlab.mat

En caso que se desee guardar en un fichero con formato ASCII, se introducirá en el comando un
modificador: “save -ascii” nombre fichero.

Si sólo se quieren guardar una serie de variables, se introducirá “save” nombre-fichero nombre-
variables separadas por espacios.

Puede recuperarse la siguiente vez que se arranque el programa con el comando “load” seguido
del nombre del fichero.

Para guardar la historia de comandos se procede a seleccionarlos en el panel de Command


History, y con el botón derecho del ratón se selecciona Create M- File, aparece otra ventana con
la historia de los comandos y ahí se puede guardar su contenido en un archivo. Las figuras o
gráficos (las cuales se mostrara más adelante como generarlas), se pueden guardar en formatos
muy diversos:
—> *.fig: es el formato nativo de MATLAB, es modificable y el más conveniente ya que guarda los
valores que la generaron.

—> *.eps: es postscript y se pueden anexar a documentos Word y la calidad no cambia al cambiar
el tamaño.

—> *.jpg: es el más común pero la calidad es muy limitada y disminuye rápidamente al cambiar
de tamaño.

Formatos de visualización con números

MATLAB utiliza los formatos para visualización de números descritos en la tabla. Estos formatos se
pueden seleccionar dentro del menú File / opción Preferences o escribiendo la orden apropiada
en MATLAB. Por defecto MATLAB trabaja al arrancar el ordenador con format short.

MATLAB trabaja siempre con la misma representación interna de un número y la elección de un


formato únicamente modifica su visualización.

Comando Ejemplo Comentario

format short 5.0833 5 dígitos (visualización por defecto)

format long 5.08333333333333 16 dígitos

format short e 5.0833e+01 5 dígitos más exponente

format long e 5.083333333333334e+01 16 dígitos más exponente e

format short g 5.0833 el mejor de format short o format short e

format long g 5.083333333333334 el mejor de format long o format long e

format hex 40496aaaaaaaaaab hexadecimal.

format + + positivo, negativo o cero

format bank 5.08 2 dígitos decimales

format rat 305/6 aproximación racional

Las variables en Matlab


La forma más sencilla de crear variables en Matlab (ya sean matrices, escalares, vectores…) es
mediante la introducción explícita de sus elementos por el usuario del programa en la ventana de
comandos. Otras maneras de producir variables podrían ser: generándolas mediante funciones y
declaraciones, creándolas en un archivo .m, cargándolas desde un archivo de datos externo
mediante el comando “load” (bien se trate de ficheros de datos ASCII o bien de ficheros binarios
con formato de datos de matlab .mat).

Además de variables numéricas, escalares o matriciales, en Matlab pueden usarse cadenas de


caracteres. Para ello se delimita una secuencia de caracteres mediante apóstrofes:

» x = ’ejemplo de cadena de caracteres’

Lo primero de todo es que, Matlab, al igual que una calculadora científica normal, almacena el
último resultado obtenido en la variable ans. Las variables son sensibles a las mayúsculas (es
decir, diferencia entre mayúsculas y minúsculas), deben comenzar siempre con una letra, no
pueden contener espacios en blanco y pueden nombrarse hasta con 63 caracteres (dependiendo de
las versiones).

- Importante para principiantes: A la hora de ponernos a programar en Matlab por primera vez
(más adelante veremos cómo se programa), muchos de los errores que nos aparecen son debidos:

- La no diferenciación entre mayúsculas y minúscula


- El símbolo decimal en Matlab es un punto
- Las cadenas de texto en Matlab se ponen entre comillas simples(‘)

Aquí se muestra un cuadro resumen de algunas variables definidas por Matlab de la siguiente
manera:

Para aquellos que tengan un nivel más avanazado del programa Matlab, se adjunta la siguiente
tabla de comandos de un nivel más avanzado:

Tecleando “clear all” podemos borrar todas las variables del espacio de trabajo, pero no borra lo
de las demás ventanas, es decir, no desaparece lo que hay escrito en la ventana de comandos.
También podemos borrar una sola variable: “clear A” o si lo que queremos es asignarle un nuevo
valor no es necesario borrar dicha variable, sino bastaría con darla ese nuevo valor (A= 56, por
ejemplo). Tecleando “clc” borramos lo que hay en la ventana de comandos pero no borra las
variables de la memoria del espacio de trabajo.
Como curiosidad, existen comandos de Matlab que nos facilitan información sobre la fecha,
como “clock”, “date” o “calendar”.

» clock % año mes día hora minutos y segundos, en este orden


» date % día-mes-año
» calendar % mes actual

Otros comandos útiles son:

- “who” muestra las variables existentes en el espacio de trabajo generadas por el usuario, pero
no las variables especiales.

- “pwd” nos indica cuál es el directorio de trabajo actual.

Con relación a éste último comando cabe señalar que todo aquello que vamos guardando se
archiva en el directorio fijado en la parte superior-central de la pantalla; el cual se puede cambiar
por cualquier otra carpeta que queramos elegir.

También podría gustarte