6 3 2 3 5 0 8 Para la matriz A= 9 6 7 2 4 5 4 Definir la matriz y obtener: Submatriz formada por los últimos 4 elementos Submatriz formada por las dos primeras filas MATRICES Y DETERMINANTES CON MATLAB El elemento a 44 El elemento a 44 El elemento a 24 El elemento a 42 >> A(end-3:end) 3 8 2 >> A( [ 2],:) 6 3 2 3 5 0 8 >> A=[6 3 2 3; 5 0 8; 9 6 7 2; 4 5 4 ] 6 3 2 3 5 0 8 9 6 7 2 4 5 4 >> A(end) >> A(end,end) >> A(2,end) 8 >> A(end,2) 5 >> A(end-2:end, end-:end) Submatriz formada por los elementos de las ultimas tres filas y ultimas dos 8 columnas 7 2 4 >> C=[A;[ 3 5 7]] Añadirle filas y columnas sin mas C = que especificar el 6 3 2 3 vector con los 5 0 8 elementos que se 9 6 7 2 quiere añadir 4 5 4 3 5 7 Submatriz formada por los últimos 6 elementos Submatriz formada por las dos primeras columnas Submatriz formada por los elementos que ocupan las posiciones donde se interceptan las filas y 3 y las columnas 3 y 4 Eliminar la tercera fila de la matriz >> A(end-5:end) 7 4 3 8 2 >> A(:,[ 2]) 6 3 5 0 9 6 4 5 >> C=A([ 3],[3 4]) C = 2 3 7 2 >> A(3, :)=[] 6 3 2 3 5 0 8 4 5 4 Desde la versión 5 de Matlab se puede usar end para indicar el último elemento de una matriz, respecto de una dimensión dada.
Para el vector: V 0. 0.4 0.3-0.3-0.9 0.4 0. -0.5-0. -0.3 0. 0.5 obtener un vector con amplitud mayor a 0.3 y discutir >> Av= [0. 0.4 0.3-0.3-0.9 0.4 0. -0.5-0. -0.3 0. 0.5] Av = 0.000 0.4000 0.3000-0.3000-0.9000 0.4000 0.000-0.5000-0.000-0.3000 0.000 0.5000 >> Av>0.3 0 0 0 0 0 0 0 0 0 >> Av(Av>0.3) 0.4000 0.4000 0.5000 >> An= :length(av); >> An(Av>0.3) 2 6 2 >> A=find(Av>0.3) Ggg 2 6 2 Vector de ceros y unos que condición es verdadera. muestra donde la Para obtener los elementos del vector que satisfacen la condición: Para obtener un vector con los índices de las muestras que satisfacen la condición v > 0.3 Para obtener un vector con los índices de las muestras que satisfacen la condición, utilizando la función find 2 3 4 Para las matrices: A B : : 2 5 6 7 8 2 >> A=[ 2 3 4;5 6 7 8] 2 3 4 5 6 7 8 >> size(a) 2 4 >> [filas,columnas]=size(a) filas = 2 columnas = 4 >> size(b) 7 >> length(a) 4 >> length(b) 7 >> B=[pi:0.5:2*pi] 3.46 3.646 4.46 4.646 5.46 5.646 6.46 Devuelve un vector fila cuyo primer elemento es es el numero de filas y cuyo Segundo elemento es el numero de columnas Devuelve el numero de filas en la primera variable y el número de columnas en la segunda variable Muestra que es un vector fila, un afila y siete columnas Devuelve el numero de filas o columnas cualquiera que sea el mayor Devuelve el tamaño del vector siete columnas >> sum(a) 6 8 0 2 Devuelve la suma todas las columnas de A 2
A partir de B una matriz randomica de 4x3 construir la matriz B I4 3 A I4 3 43 La matriz randomica La matriz pedida >> B=rand(4,3) >> A=[B eye(size(b)); eye(size(b)) ones(size(b))] 0.928 0.9355 0.0579 0.928 0.9355 0.0579.0000 0 0 0.7382 0.969 0.3529 0.7382 0.969 0.3529 0.0000 0 0.763 0.403 0.832 0.763 0.403 0.832 0 0.0000 0.4057 0.8936 0.0099 0.4057 0.8936 0.0099 0 0 0.0000 0 0.0000.0000.0000 0.0000 0.0000.0000.0000 0 0.0000.0000.0000.0000 0 0 0.0000.0000.0000 Con una sola instrucción crear cada una de las siguientes matrices y reemplazar las filas 2, 4, 6, 7 de B por filas 5, 6, 7, 8 de A. A Generamos A con una sola línea de comandos Generamos B con una sola línea de comandos Reemplazamos las filas 2, 4, 6, 7 de B por las filas 5, 6, 7, 8 de A. 2 8 2 3 9 8 9 5 y B I 8 (matriz identidad) >> A=[(:8)',(2:9)',(3:0)',(4:)',(5:2)',(6:3)',(7:4)',(8:5)'] 2 3 4 5 6 7 8 2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 0 4 5 6 7 8 9 0 5 6 7 8 9 0 2 6 7 8 9 0 2 3 7 8 9 0 2 3 4 8 9 0 2 3 4 5 >> B=eye(8) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> B([2 4 6 7],:)=A(5:6:7:8,:) 0 5 6 7 8 9 0 2 0 0 0 0 0 0 0 6 7 8 9 0 2 3 0 0 0 0 0 0 0 7 8 9 0 2 3 4 8 9 0 2 3 4 5 0 3
Construir una matriz 5 5 cuyas columnas estén dadas por el vector columna: A 2 3 4 5 T >> B=[ 2 3 4 5]'*ones(,5) 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 Dado el vector fila, x=rand(,5) invertir el orden de sus elementos: Definimos la matriz Matriz con sus elementos en orden inverso >> x=rand(,5) >> x=x(5:-:) x = x = 0.950 0.23 0.6068 0.4860 0.893 0.893 0.4860 0.6068 0.23 0.950 Ggggg Obsérvese que por haber utilizado paréntesis en vez de corchetes los valores generados por el operador (:) afectan a los índices del vector y no al valor de sus elementos. Dada una matriz magica de orden 3, A=magic(3), invertir el orden de las columnas: Definimos la matriz Matriz con sus columnas invertidas >> A=magic(3) >> A(:,3:-:) 8 6 3 5 7 4 9 2 6 8 7 5 3 2 9 4 Aunque hubiera sido más fácil utilizar la función fliplr(a), que es específica para ello. Finalmente, hay que decir que A(:) representa un vector columna con las columnas de A una detrás de otra. Con una sola línea de instrucciones generar la matriz y con una sola línea de instrucción extraer un vector columna cuyos elementos sean los elementos de las 3 diagonales de A Definimos la matriz >> A=diag(-3:3)+diag(ones(6,),)+diag(-*ones(6,),-) -3 0 0 0 0 0 - -2 0 0 0 0 0 - - 0 0 0 0 0-0 0 0 0 0 0-0 0 0 0 0-2 0 0 0 0 0-3 A Matriz con elementos de la diagonal 3 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 >>diag(a,) >> diag(a) -3-2 - 0 2 3 diag(a,-) - - - - - - 4
5 4 6 2 3 5 T Ingresar la matriz A A 0 Crear la matriz C 6 8 4 0 A 4 8 7 Introducimos la matriz La transpuesta La matriz C >> C=[A zeros(4);zeros(4) A_trans] >> A=[ 5 4 6;2 3 5; 6 8 4;4 8 7 ] >> A_trans=A C = 5 4 6 2 3 5 6 8 4 4 8 7 A_tr 2 4 5 6 8 4 3 8 7 6 5 4 5 4 6 0 0 0 0 2 3 5 0 0 0 0 6 8 4 0 0 0 0 4 8 7 0 0 0 0 0 0 0 0 2 4 0 0 0 0 5 6 8 0 0 0 0 4 3 8 7 0 0 0 0 6 5 4 sss 2 6 Dadas las matrices: A 3 9, 2 B 3 4, 5 5 C 5 3 A 0 0 Formar la matriz D 66 0 B 0 sin introducir elemento a elemento. 0 0 C Con una sola instrucción borrar la ultima fila y la ultima columna de D Extraer la primera sub matriz 4x4 M,3, 6 2,5 de D Extraer la submatriz >> A=[2 6; 3 9] B=[ 2; 3 4] C=[-5 5; 5 3] Generamos las matrices C = 2 6 2-5 5 3 9 3 4 5 3 OBSERVACION COMANDO RESPUESTA D = Primero inicializo la matriz a ceros >> D=zeros(6,6); D = metemos las tres matrices como submatrices de D Eliminar la ultima fila y la ultima columna (Se quiere conservar la matriz D, entonces le asigno el mismo valor a una nueva variable F sobre la que se realizan los cambios) >> D(:2,:2)=A >> D(3:4,3:4)=B >> D(5:6,5:6)=C >> F=D; >> F(6,:)=[] >> F(:,6)=[] F = 2 6 0 0 0 0 3 9 0 0 0 0 0 0 2 0 0 0 0 3 4 0 0 0 0 0 0-5 5 0 0 0 0 5 3 F = 2 6 0 0 0 0 3 9 0 0 0 0 0 0 2 0 0 0 0 3 4 0 0 0 0 0 0-5 5 5
Extraer la submatriz 4x4 de la esquina superior izquierda de D: Extraer la submatriz M,3, 6 2,5 de D : >> H=D(:4,:4) >> K=D([ 3 6],[2 5]) 2 6 0 0 0 3 9 0 0 0 0 0 2 0 0 0 3 4 0 0 0 0 0-5 H = 2 6 0 0 3 9 0 0 0 0 2 0 0 3 4 K = 6 0 0 0 0 5 6