Академический Документы
Профессиональный Документы
Культура Документы
Acceso directo
La ventana de trabajo
La ventana de trabajo o escritorio aparecerá inmediatamente al comenzar una sesión con la aplicación
MATLAB. La configuración elegida a través de la disposición de diferentes barras y ventanas en la
pantalla nos permitirá trabajar en un entorno similar a cualquier aplicación general del sistema operativo
Microsoft Windows XP.
En la ventana de trabajo, destacan de arriba hacia abajo, los siguientes elementos invariantes:
Barra de títulos, con el nombre del programa.
Barra de menú, con todas las opciones del menú general.
Barra de herramientas, formada por varios iconos de acceso rápido a las opciones más utilizadas del
submenú de ficheros y de edición, muchos de ellos inactivos.
Incluye además, diferentes ventanas propias como:
Ventana de comandos (Command Window), donde escribiremos las instrucciones, y dos ventanas,
superior e inferior, que contienen las pestañas que nos muestran nuestro entorno.
Ventana de espacio de trabajo (Workspace) donde se almacenarán las variables y resultados
presentes en memoria y un listado de los componentes instalados (Launch Pad).
Ventana directorio actual (Current Folder) permite disponer de información acerca del directorio en el
que trabajamos.
Ventana historial (Command History) muestra un listado histórico de las últimas instrucciones
ejecutadas.
En la ventana de comandos cada instrucción se escribe a continuación del prompt (»), que es el
indicador de que MATLAB está preparado para recibir órdenes.
Una vez escrita alguna instrucción siempre es necesario pulsar la tecla enter ( ) para que MATLAB la
ejecute.
Tras realizar determinada operación numérica el sistema responderá creando, en el espacio de trabajo,
una variable de sistema llamada ans en la que almacena el valor numérico obtenido, siempre que
nosotros no hubiésemos creado alguna otra variable para almacenarlo.
Nota: Es importante observar que si tras
una determinada instrucción se escribe
un punto y coma (;) la variable ans no
aparecería en pantalla.
Interacciones del usuario con el espacio de trabajo
Matlab almacena todas las variables de trabajo en una memoria, el cual es conocido como ventana de
trabajo (Workspace)
Who
La instrucción who muestra un listado de las variables definidas en el espacio de trabajo. Esta
información está también disponible de forma visual, en todo momento, en el espacio de trabajo.
>> who
Your variables are:
a ans b y
whos
ofrece un listado de las variables definidas en el espacio de trabajo que incluye información adicional
sobre su nombre, sus dimensiones como matriz, el tamaño que ocupa en número de bytes empleados
y si su clase, es decir, el formato en el cual se almacena.
>> whos
Name Size Bytes Class Attributes
a 1x1 8 double
ans 1x1 8 double
b 1x1 8 double
r 1x1 8 double
clear
Elimina toda la información existente en el espacio de trabajo. Es decir borra de la memoria.
» clear
» clear a b
Elimina dos o varias variables existentes en el espacio de trabajo.
Otras instrucciones
» clc
Limpia la información en la ventana de comandos aunque, no la información almacenada en el espacio
de trabajo.
» clf
Limpia la información gráfica visualizada en la ventana de figuras activa, pero no la cierra.
» close
Cierra la ventana de figuras activa, cuando exista.
Guardar y recuperar
Veamos cómo salvar y recuperar todo el espacio de trabajo o algunas de las variables creadas en el
mismo. Por su sencillez, bastará emplear dos instrucciones primordiales para realizar esta tarea: save
permite salvar el espacio de trabajo en un archivo (con diversas variantes) y, load permite recuperar el
espacio de trabajo, previamente salvado, en un archivo (con diversas variantes).
» save datos a
Guarda en el directorio desde donde ha sido iniciado MATLAB la variable x en un fichero denominado
datos.mat (utilizando formato binario únicamente comprensible por el entorno MATLAB). Este archivo
se guardará en el directorio hacia donde MATLAB esté direccionado en ese momento.
» save datos w -append
Guarda la variable w a continuación de la información existente en el archivo datos.mat. Esta variante
sólo es aplicable a ficheros con dicha extensión.
» load datos
Recuperaremos, en el formato con que se guardó, las variables contenidas en datos (siempre que
MATLAB se encuentre direccionado hacia el directorio donde se guardó).
Si se desea es posible guardar únicamente ciertas variables de un conjunto más amplio, previamente
contenido en el espacio de trabajo, en archivos específicamente denominados, por ejemplo
» save matrices A B C
Guarda las matrices A, B y C, en un archivo denominado matrices.mat.
También pueden combinarse en dicha lista ambos tipos de variables numéricas, escalares y matrices,
para guardarse en un mismo archivo, en formato .mat. En cualquier caso serán consideradas matrices
de orden nxm .
» save sesion1
Guardar todo el espacio de trabajo con el nombre de sesion1.mat. Para ello, bastará con escribir en la
ventana de trabajo
Formatos de salida
Todos los cálculos en matlab son realizados usando doble precisión. La forma de aparición del punto
flotante es controlada por el formato de salida.
El formato numérico que MATLAB muestra, por defecto, contiene cuatro cifras decimales. Existen otros
formatos numéricos disponibles. El más importante es el formato numérico de catorce cifras decimales
que es el utilizado internamente por MATLAB para realizar las operaciones de cálculo.
>> format short
>> s
s = 5.8881
>> format short e
>> s
s = 5.8881e+000
>> format long
>> s
s = 5.888123640006212
>> format long e
>> s
s = 5.888123640006212e+000
Los formatos adicionales format compact (suprime una línea posterior) y format loose (pone una línea
posterior) controlan por encima y por debajo de la presentación del número.
Cadenas de caracteres: (también llamadas string) son una sucesión de caracteres delimitados
por una comilla (apostrofo) o dobles comillas, según el tipo de lenguajes de programación.
EJEMPLO: ´Esto es una cadena de caracteres’ ’string’ ’123abc’
Matrices: son conjuntos de datos numéricos organizados para formar una matriz o un vector.
EJEMPLO: vector fila de dimensión 4 [1, 0, 3, 4]
2.3.- Operaciones Aritméticas
Las operaciones aritméticas habituales se representan normalmente mediante los símbolos
siguientes:
Descripción Símbolo
Exponenciación ^
Suma +
Resta -
Multiplicación *
División /
Operadores elementales
2.3.1.- Reglas de Prioridad
Las operaciones aritméticas NO se efectúan siempre en el orden en que están escritas. El orden viene
determinado por las reglas siguientes:
1. Exponenciaciones.
2. Multiplicaciones y divisiones.
3. Sumas y restas.
4. Dentro de cada grupo, de izquierda a derecha. Para cambiar este orden se usan los paréntesis.
5. Si hay paréntesis, su contenido se calcula antes que el resto.
6. Si hay paréntesis anidados, se efectúan primero los más internos.
EJEMPLO: 2 + 3 ∗ 4 = 2 + 12 = 14
(2 + 3) ∗ 4 = 5 ∗ 4 = 20
1/3 ∗ 2 = 0.3333 . . . ∗ 2 = 0.6666
1/(3 ∗ 2) = 1/6 = 0.166666 . . .
2 + 3∧4/2 = 2 + 81/2 = 2 + 40.5 = 42.5
4 ∧3 ∧2 = (4∧3) ∧ 2 = 64∧2 = 4096
2.4.- Operaciones de Comparación
Imprescindibles para verificar condiciones son las expresiones lógicas, es decir, expresiones cuya
evaluación produce un valor lógico. Las más simples son aquellas en las que se comparan dos datos.
Los operadores de comparación actúan entre dos datos, que tienen que ser del mismo tipo, y
producen un resultado lógico: true o false (en MATLAB se equiparan con 1 y 0 respectivamente). Los
operadores de comparación se representan de distintas formas según el lenguaje. Los que se
muestran en la tabla siguiente son los de MATLAB:
Descripción Símbolo
Igual a ==
No igual a ~=
Menor que <
Mayor que >
Menor o igual que <=
Mayor o Igual que >=
Constantes
Una constante es un dato numérico o alfanumérico que no cambia durante todo el desarrollo del
algoritmo o durante la ejecución del programa. Es un objeto de valor invariable. Para expresar una
constante se escribe explícitamente su valor.
Tipos de Constantes:
Constantes Numéricas (Enteras y Reales)
Constantes Alfanuméricas
Constantes Lógicas (Boolenas)
b) >> y=inline('x^2+1')
y= Inline function:
y(x) = x^2+1
>> y(1)
ans = 2
>> feval(y,1)
ans =2
Para evaluar funciones definidas mediante >>inline no se puede usar el comando >>subs .
C. Definición de funciones simbólicas definiendo la variable como simbólica
Para evaluar se utiliza el comando >>subs .
>> x=sym('x');p=2*x-5;
>> subs(p,1) ans = -3
D.Definición de función simbólica entre comillas simples En este caso no hace falta declarar la variable.
de nuevo es evaluada con el comando >>subs
>> y='x^2+1';
>> subs(y,0)
ans = 1
Construyase f=ax2+bx+c y sustitúyase x por t. Para a=2, b=1, c=0. Obténgase el valor de f, cuando t=2
y t=[1:4].
>> syms x a b c
>> f=a*x^2+b*x+c
f = a*x^2 + b*x + c
>> syms t
>> g=subs(f,x,t)
g = a*t^2 + b*t + c
>> h=subs(g,{a b c},{2 1 0})
h = 2*t^2 + t
>> u=subs(h,t,2)
u = 10
>> v=subs(h,t,[1:4])
v = 3 10 21 36
Vectores
Los arreglos en MATLAB son fundamentales para almacenar y manipular datos. Un arreglo es una lista
de números ordenados en filas, columnas o ambas. El arreglo más simple (unidimensional) es una fila
o una columna de números. (Montufar, 2014).
Un vector, conocido también como arreglo unidimensional compuesto de una fila y varias columnas
(1xn) o varias filas y una columna (nx1). Los vectores guardan o almacenan datos para su posterior
manipulación mediante operaciones propias de vectores u operaciones matemáticas.
Ejemplo: Temperaturas máximas Juliaca en una semana (04/09/16 a 10/09/16)
Día domingo lunes martes miércoles jueves viernes sábado
Temperatura 16.8 19.6 19.5 20.5 19.9 20.2 19.2
Fuente: Senamhi Puno
Un vector fila de n elementos (1xn) se puede representar de dos formas:
Vector = [v1,v2,v3,…..vn]
Vector = [v1 v2 v3 …..vn]
Ejemplo:
Temperatura = [16.8 19.6 19.5 20.5 19.9 20.2 19.2]
Respuesta = [7 3.21 3.4 7/5 4.25]
Ejemplo:
Temperatura = [16.8;19.6;19.5;20.5;19.9;20.2;19.2]
Temperatura = [
16.8
19.6
19.5
20.5
19.9
20.2
19.2]
Un vector se puede representar sin necesidad de definir sus elementos, es decir mediante una
sucesión con intervalos constantes o con n términos de intervalos constante.
Vector con sucesión de elementos con intervalos constante
Para un vector con el elemento a1(primer elemento) y an (último elemento), la sucesión de elementos
entre a1 y an puede estar distribuido uniformemente entre sí, es representado de dos formas:
Nombre_vector=[a1 : i : an] o
Nombre_vector=a1 : i : an
Ejemplo
Numeros_pares=[2 : 2 : 100]
Numeros_impares=1 : 2 : 100
Numeros_suc_3=[3 : 3 : 100]
>> n_pares=[2:2:80];
>> n_impares=[1:2:90];
>> n_vector=linspace(2,40,80);
>> save vec_mat1
>> clear all
>> load vec_mat1
>> size(n_vector)
>> size(n_pares)
>> size(n_impares)
MATRICES
Una matriz es un conjunto de elementos de n filas y m columnas.
𝑎11 𝑎12 … 𝑎1𝑚
𝑎21 𝑎22 ⋯ 𝑎2𝑚
𝐺 = 𝑎31 𝑎32 ⋯ 𝑎3𝑚
⋮ ⋮ ⋱ ⋮
( 𝑎 𝑛1 𝑎 𝑛2 ⋯ 𝑎 𝑛𝑚 )
Los valores de los elementos de las matrices en Matlab se representan entre corchetes, el ingreso de los
elementos de las filas se realiza separando mediante comas o espacios, al término de una fila se separan
mediante punto y coma para iniciar otra fila.
𝐺 = [ 𝑎11 𝑎12 … 𝑎1𝑚 ; 𝑎21 𝑎22 ⋯ 𝑎𝑛2 ; ⋯ ; 𝑎𝑛1 𝑎𝑛2 … 𝑎𝑛𝑚 ]
Eye(n,m).- Crea una matriz n x m, en donde los elementos de la diagonal principal son 1 y el resto de
elementos de la matriz son 0.
Inm=eye(3,4)
Inm =
1 0 0 0
0 1 0 0
0 0 1 0
>> M_aleatorio=rand(2,3)*10
M_aleatorio =
7.5127 5.0596 8.9090
2.5510 6.9908 9.5929
>> M_aleatorio=int32(rand(2,3)*10)
M_aleatorio =
8 9 2
2 3 3
>> t=randn(4,3)
t=
0.1205 -0.4698 0.4207
-0.9899 0.8864 0.4007
1.1978 -1.3852 0.0951
-0.5927 -1.9568 0.4967
Randint(n,m,rango).- Crea una matriz de tamaño n x m, donde los elementos generados aleatoriamente
y están distribuidos entre [0,k] o [k1, kn]
>> m_enteros = randint(2,3)
m_nenteros =
1 0 0
0 0 1
Randi(rango, n, m).- crea una matriz con n filas y m columnas con elementos generados entre 1 y el
rango
>> r = randi(8,1,3)
r=
8 8 5
>> r = randi(5,6,1)
r=
2
3
4
3
2
5
>> r = randi(5,7,3)
r=
1 5 5
1 4 4
1 4 3
1 1 1
4 5 2
3 5 1
1 5 1
r = randi([-10 10],10,1)
r=
-5
-8
-7
-5
-2
-9
8
9
0
0
Magic().- Crea una matriz mágica de n x n, en donde la suma de los elementos de cada una de
columnas y filas son iguales, así como la suma de las diagonales.
>> magic(3)
ans =
8 1 6
3 5 7
4 9 2
SUBMATRICES
Sea a la matriz n x m
Si i y j son vectores, entonces A(i,j) nos devuelve la submatriz de la matriz A designada mediante las
filas dadas en i y las columnas en j.
Ejemplo: crear una matriz 3 x 5 y obtener la sub matriz m([1 3] ,[1 3 5])
>> m=randint(3,5,19)
m=
10 18 4 12 18
4 10 9 7 0
8 9 11 6 16
SUSTITUCIÓN
En una matriz los elementos pueden ser cambiados de valor o es posible sustituirlos, la sustitución se
realiza de dos maneras:
a.- Sustitución de un elemento A(ai,aj)=k.- Se asigna un valor por el que sustituirá al elemento
seleccionado, indicando la fila y columna de ubicación en la matriz.
En la matriz m1 cambiar el elemento18 por 55
>> m1(1,3)=55
m1 =
10 4 55
8 11 16
>> m2(2:4,4:6)=2
m2 =
8 6 3 5 7 6
1 0 7 2 2 2
2 0 6 2 2 2
2 4 5 2 2 2
>> m2(1:2,5:6)=ones()*9
m2 =
8 6 3 5 9 9
1 0 7 2 9 9
2 0 6 2 2 2
2 4 5 2 2 2
y=
2 3
0 1
z=
1 0 5 6
1 0 1 0
>> [x; y z]
ans =
8 6 8 5 7 9
1 0 7 2 3 1
2 0 6 7 4 9
2 4 5 2 8 6
2 3 1 0 5 6
0 1 1 0 1 0
Matriz vacia
>> t.*u
ans =
35 24 9
2 16 36
Vectores y Matrices
1.- a=[5,7,1,12;2,9,17,8;15,6,4,12;7,11,5,16]
a=
5 7 1 12
2 9 17 8
15 6 4 12
7 11 5 16
5 7 1 12
2 9 17 8
15 6 4 12
7 11 5 16
>> a=a(:,1:4) % copiar todas las filas y solo de la columna uno al cuatro
a=
5 7 1 12
2 9 17 8
15 6 4 12
7 11 21 16
Ejemplo
Se tiene el siguiente sistema de ecuaciones lineales:
x+y+z=2
2x – y + 2z = 7
-3x + 2y - 2z = -9
>> b=[2;7;-9]
b=
2
7
-9
EJERCICIOS PROPUESTOS
1.- Se tiene los siguientes valores para la matriz A
a.- Obtener los valores de la segunda y la tercera columna
b.- Obtener la diagonal de A
c.- Obtener la transpuesta de A
d.- Añadir un elemento cualquiera en la columna 4 fila 3
e.- Copiar todas las filas y solo de la columna uno al tres
f.- Mostrar todas las filas y menos la columna dos
>> s=char(42)
s=
*
Ejemplos de cadenas
>> cadena1='programacion'
cadena1 = programación
>> cat(2,cadena1,cadena2)
ans = programación para ingeniería
>>cad1='abcde'
cad1 = abcde
>> c=double(cad1)
c = 97 98 99 100 101
>>size(cad1)
ans = 1 5
>>c=double(c)
c = 97 98 99 100
>> char(c)
ans =abcde
>>cadena=['UNAJ','PROGRAMACION'] % concatenación
cadena =UNAJPROGRAMACION
>> cadena=char('UNAJ1','programar')
cadena = UNAJ1
programar
>> cadena(1,2)
ans = N
>> cadena(2,2)
ans = r
Tratamiento de números
Ceil(x) Redondea al entero más grande o igual
>> ceil(345.1234)
ans =
346
>> round(2340.49)
ans =
2340
FUNCIONES BÁSICAS
Sqrt(x) raíz cuadrada
Abs(x) valor absoluto
Conj(z) complejo conjugado
Real(z) parte real
Imag(z) parte imaginaria
Angle(z) argumento
Exp(x) exponencial
Log(x) logaritmo natural
Log10() logaritmo decimal
Sin(x)
Cos(x)
Tan(x)
Asin(x) arcoseno
Acos(x) arcocoseno
Atan(x) arcotangente
Rats(x) aprox racional
Sign(x) signo(1 / -1 / 0)
>> c='cadena'
c=
cadena
>> size(c)
ans =
1 6
>> double(c)
ans =
99 97 100 101 110 97
>> nc=abs(c)
nc =
99 97 100 101 110 97
>> char(nc)
ans =
cadena
>> cc=char('UNAJ','Juliaca')
cc =
UNAJ
Juliaca
>> abs('a')
ans =
97
>> abs('a')-abs('A')
ans =
32
>> char(a-32)
ans =
CASA
>> L=['maria';'Jaime';'Luz';'Rosamaria';'Alberto']
??? Error using ==> vertcat
CAT arguments dimensions are
not consistent.
>> L=char('maria','Jaime','Luz','Rosamaria','Alberto')
L=
maria
Jaime
Luz
Rosamaria
Alberto
>> c=[8;7;8;9;10]
c=
8
7
8
9
10
>> tabla=[L , c]
tabla =
maria
Jaime
Luz
Rosamaria
Alberto
>> sc=num2str(c)
sc =
8
7
8
9
10
Ejercicio Propuesto
Evaluar las siguientes expresiones para el valor de x y mostrar el resultado en formato long,
short y rat.
Ejemplo: Dibujar la función f(x) = xlog(x) en el intervalo [0; 4] y mostrar el resultado en formato
largo
>> x = [0:0.01:3];
>> y = x.*log(x);
>> plot(x,y)
>> grid on
>>title('grafico')
>> text(1,0.65,'y = x log(x)')
Ejercicio propuesto: sea la función f(x) = 2xlog(x) en el intervalo [0; 5] (con incrementos de
0.02) y mostrar el resultado en formato fraccionario y dibujar la función.
>> x = [0: : ];
>>y =
>>
>>
>>
>>a=rand(3,5)
a=
0.8147 0.9134 0.2785 0.9649 0.9572
0.9058 0.6324 0.5469 0.1576 0.4854
0.1270 0.0975 0.9575 0.9706 0.8003
>>round((rand(3,5)-rand(3,5))*10)
ans =
4 -1 -1 5 0
8 1 1 -3 0
4 -1 -2 0 1
Ejemplo
>> A=round(rand(3,5)*10)
A=
0 3 4 8 8
3 2 9 4 4
4 8 4 8 2
>>A=[10:-1:1]
A = Columns 1 through 9
10 9 8 7 6 5 4 3 2
Column 10 1
>> A=round(rand(3,5)*10)
A=
4 8 1 7 5
7 3 1 5 1
8 5 1 2 1
>> A([2:end-1],:)
ans =
7 3 1 5 1
>> A([2:end],:)
ans =
7 3 1 5 1
8 5 1 2 1
>> A=round(rand(3,5)*10)
A=
9 7 9 9 5
6 6 10 6 5
9 8 0 10 8
>> A(:,[1:2:end])
ans =
9 9 5
6 10 5
9 0 8
Ejercicios
1.- Dibujar la función y = xsin(1/x)+x3 en el intervalo [0;3] (con incrementos de 0.02) y mostrar
el resultado en formato largo y dibujar la función.
2.- Resolver (y mostrar los resultados en tres formatos diferentes) y graficar las funciones:
f(x)=x; f(x)= x2; f(x)= x3
Para un intervalo x=[-3,3]