Transcript Clase_3b
Fundamentos de
Matlab
1 3 5 7
2 4 6 8
A 3 6 9 12
4 8 12 16
5 10 15 20
9
10
15
20
25
11
12
18
24
30
Ejercicio
Define un vector B que contenga todos los elementos de la
columna 3 de la matriz A
Define un vector C que contenga todos los elementos del
renglón 2 de la matriz A
Define una matriz E que contenga los elementos del 2do al 4to
renglón de la matriz A
Define una matriz F de 3 x 3 que contenga los elementos del 1o
al 3er renglón y de la 2da a la 4ta columna de la matriz A
Algunos comandos del Sistema Operativo
>> help
>> who
>> whos
>> clear
>> pwd
>> cd
>> dir
>> save
>> load
>> delete
>> quit
lista los principales tópicos de la ayuda
lista variables en uso
lista variables en uso y su descripción
borra variables
muestra cual es el directorio actual
cambia la ruta del directorio actual
lista el directorio actual
almacena variables en un archivo .mat
carga variables y su contenido
elimina archivo
termina la sesión con Matlab
Comandos especiales
>> date
>> datenum
>> clock
>> format
fecha actual como cadena de caracteres
convierte una fecha en un número serial que
representa el número de días a partir del 0101-0000
fecha y hora actual como vector
establece el formato de salida
Cadenas de caracteres (string)
>> x = ’ejemplo’;
>> x(4)
>> t=x(2:5);
>> length(x)
>> strcat(x,t)
>> int2str(A)
>> num2str(A)
>> str2num(A)
>> eval(s)
asignación de una cadena
manejo de un carácter de la cadena
una subcadena
longitud de la cadena
concatenación de cadenas
redondea los elementos de la matriz A a
enteros y los convierte en caracteres
convierte los elementos de A en caracteres
convierte una matriz de caracteres en un
arreglo numérico
ejecuta la cadena de caracteres como una
expresión o comando
Funciones matemáticas elementales que operan de
modo escalar (actúan sobre cada elemento de la
matriz)
sin(x)
cos(x)
tan(x)
asin(x)
acos(x)
atan(x)
seno
coseno
tangente
arco seno
arco coseno
arco tangente (devuelve un ángulo entre -π/2
y +π/2)
sinh(x) seno hiperbólico
cosh(x) coseno hiperbólico
tanh(x) tangente hiperbólica
asinh(x) arco seno hiperbólico
acosh(x) arco coseno hiperbólico
atanh(x) arco tangente hiperbólica
log(x)
log10(x)
exp(x)
sqrt(x)
rem(x,y)
logaritmo natural
logaritmo decimal
función exponencial
raíz cuadrada
residuo de la división (x – n.*y donde n =
fix(x./y) si y~=0)
mod(x,y) similar a rem (Ver diferencias con el Help)
round(x) redondea hacia el entero más próximo
fix(x)
redondea hacia el entero más próximo a 0
floor(x)
redondea hacia -∞
ceil(x)
redondea hacia +∞
gcd(x)
máximo común divisor
lcm(x)
mínimo común múltiplo
real(x)
parte real del número complejo
imag(x)
parte imaginaria del número complejo
abs(x)
valor absoluto
Funciones que actúan sobre vectores y/o matrices
>> x = [2,-1,0,3];
>> A = [1,2,3;4,5,6;7,8,9];
>> [m,n] = size(A) tamaño de A
>> n = length(x)
número de elementos del vector x
>> dot(x,y)
producto escalar entre dos vectores
>> rank(A)
rango de A (número de renglones o
columnas linealmente independientes)
>> trace(A)
traza de A (suma de los elementos en
la diagonal)
>> det(A)
determinante de la matriz cuadrada A
>> inv(A)
inversa de A
>> A’
traspuesta de A
>> N = [ ]
matriz nula
>> y = diag(A)
forma un vector y con los elementos de la
diagonal de la matriz A
>> polyval(x,y)
encuentra el valor del polinomio cuyos
coeficientes son los elementos del vector x
evaluado en y
>> roots(x)
encuentra las raíces del polinomio cuyos
coeficientes son los elementos del vector x
>> flipud(A)
voltea la matriz A en sentido arriba/abajo
(simetría respecto a un eje horizontal)
>> fliplr(A)
voltea la matriz A en sentido izq/der
(simetría respecto a un eje vertical)
>> reshape(A,m,n) devuelve una matriz de tamaño mxn
cuyos elementos se obtienen a partir de un
vector formado por las columnas de A puestas
una a continuación de la otra. Ocurre un error si A
no tiene m*n elementos.
>> rot90(A,k) Gira k*90 grados la matriz A en sentido antihorario, k es cualquier número entero. Si se
omite, se supone k = 1.
Funciones adicionales para manejo de datos con vectores y
matrices
>> A = [5,-1;3,4;2,7];
>> max(A)
el valor máximo por columnas
>> min(A)
el valor mínimo por columnas
>> sum(A)
suma sobre cada columna
>> prod(A)
producto sobre cada columna
>> cumsum(A) matriz del mismo tamaño que A conteniendo
las sumas acumuladas sobre las columnas
>> cumprod(A) matriz del mismo tamaño que A conteniendo
los productos acumulados sobre las columnas
>> mean(A)
media aritmética sobre las columnas
>> median(A) mediana sobre las columnas
>> std(A)
desviación estándar sobre las columnas
►
>> find(A>10)
>> sort(A)
>> exist(‘var’)
>> isnan(A)
>> isempty(A)
encuentra los índices de los elementos de A que
cumplen con cierta condición
ordenamiento ascendente de los elementos de A
comprueba si var existe como variable, función,
directorio, fichero, etc.
regresa un arreglo que contiene 1’s donde los
elementos de A son NaN’s y 0’s donde no lo son
checa si A está vacía o tiene tamaño nulo
Se pueden agregar funciones nuevas a MATLAB si están
expresadas en términos de otras funciones existentes (help
function).
■ Algunos gráficos comunes
>> bar(A)
>> hist(A)
>> pie(A)
>> pie3(A)
gráfico de barras
histograma
gráfico tipo pastel
pastel en relieve
Gráficos de funciones de una variable
>> f = 'exp(x)-3*x';
>> ezplot(f, [0, 2])
grafica la expresión dada por f sobre el dominio
dado (el dominio por omisión es -2*pi < x < 2*pi)
>> x = 0:0.1:2*pi;
>> y = sin(x);
puntos de la función seno
>> plot(x,y);
grafica la función seno con una línea contínua
>> plot(x,y,'o')
gráfico con círculos. Se puede elegir: o . * + x ->> plot(x,y,'r')
gráfico en color rojo. Puede elegir: r,b,y,m,g,b,w,k
>> plot(x,y,'og') gráfico con círculos verdes.
>> plot(x,y,’LineWidth’,2) cambia el ancho de línea
>> grid
dibuja la cuadrícula
>> title('seno de x')
título
>> text(x1,y1,’string’)
agrega el texto en la posición (x1,y1)
>> gtext('seno de x')
posiciona el texto en el gráfico con el
mouse
>> xlabel('X')
rotula el eje horizontal
>> ylabel('Y')
rotula el eje vertical
>> axis([Xmin Xmax Ymin Ymax]) define límites para los ejes
>> hold on
>> figure(n)
>> subplot(m,n,p)
>> clf
>> x = 0:0.1:10;
>> y = exp(x);
>> semilogy(x,y)
>> loglog(x,y)
>> a = 0:0.01:2*pi;
>> r = sin(3*a);
>> polar(a,r);
superpone el gráfico subsecuente al
actual
se pueden tener varias figuras abiertas
divide la ventana de la figura en mxn
gráficos y selecciona el p-ésimo para la
gráfica actual
borra el gráfico activo
usa una escala logarítmica en el eje Y
usa escalas logarítmicas en ambos ejes
ángulo en radianes
radio
usa coordenadas polares para graficar el
ángulo, en radianes, contra el radio
>> x = linspace(0,2*pi,10);
>> y = cos(x);
>> stem(y)
gráfica de valores discretos