130 likes | 420 Views
Fundamentos de Matlab. 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 2 do al 4 to renglón de la matriz A
E N D
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 lista los principales tópicos de la ayuda >> wholista variables en uso >> whoslista variables en uso y su descripción >> clearborra variables >> pwdmuestra cual es el directorio actual >> cdcambia la ruta del directorio actual >> dirlista el directorio actual >> savealmacena variables en un archivo .mat >> loadcarga variables y su contenido >> deleteelimina archivo >> quittermina la sesión con Matlab
Comandos especiales • >> date fecha actual como cadena de caracteres • >> datenum convierte una fecha en un número serial que representa el número de días a partir del 01- 01-0000 • >> clock fecha y hora actual como vector • >> format establece el formato de salida • Cadenas de caracteres (string) • >> x = ’ejemplo’; asignación de una cadena • >> x(4) manejo de un carácter de lacadena • >> t=x(2:5); una subcadena • >> length(x) longitud de la cadena • >> strcat(x,t) concatenación de cadenas • >> int2str(A) redondea los elementos de la matriz A a enteros y los convierte en caracteres • >> num2str(A) convierte los elementos de A en caracteres • >> str2num(A) convierte una matriz de caracteres en un arreglo numérico • >> eval(s) 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) seno • cos(x) coseno • tan(x) tangente • asin(x) arco seno • acos(x) arco coseno • atan(x) 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) logaritmo natural • log10(x) logaritmo decimal • exp(x) función exponencial • sqrt(x) raíz cuadrada • rem(x,y) 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 anti- horario, 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 lassumas acumuladas sobre las columnas • >> cumprod(A) matriz del mismo tamaño que A conteniendo losproductos 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) encuentra los índices de los elementos de A que cumplen con cierta condición • >> sort(A) ordenamiento ascendente de los elementos de A • >> exist(‘var’) comprueba si var existe como variable, función, directorio, fichero, etc. • >> isnan(A) regresa un arreglo que contiene 1’s donde los elementos de A son NaN’s y 0’s donde no lo son • >> isempty(A) 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) gráfico de barras • >> hist(A) histograma • >> pie(A) gráfico tipo pastel • >> pie3(A) 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 unalí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 superpone el gráfico subsecuente al actual • >> figure(n) se pueden tener varias figuras abiertas • >> subplot(m,n,p) divide la ventana de la figura en mxn gráficos y selecciona el p-ésimo para la gráfica actual • >> clf borra el gráfico activo • >> x = 0:0.1:10; • >> y = exp(x); • >> semilogy(x,y) usa una escala logarítmica en el eje Y • >> loglog(x,y) usa escalas logarítmicas en ambos ejes • >> a = 0:0.01:2*pi; ángulo en radianes • >> r = sin(3*a); radio • >> polar(a,r); 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