%% prog matrices clearvars; close all; clc; %las matrices son arreglos numericos bidimensionales cuyos elementos se indexan %con dos numeros fila--->dirección horizontal columna--->direccion vertical %los elemntos en las filas se separan con coma (,) o con espacio vacio ( ) %las columnas se separan con punto y coma (;) %% matrices basicas A1 = [1,2,3;4,5,6;7,8,9]; %matriz de 3 filas 3 columnas (3X3) %el primer numero indica la cantidad de filas ---> horizontal %el segundo numero indica la cantidad de columnas ---> vertical %este comando significa que tengo la matriz % [ 1 2 3 ] % A1 = [ 4 5 6 ] % [ 7 8 9 ] A2 = [11 12 13; 14 15 16; 17 18 19];%matriz de 3 filas 3 columnas (3X3) %matriz rectangular A3 = [0 3 5; 2 7 4; 7 9 0; 2 7 5; 0 1 3];%matriz de 5 filas 3 columnas (5X3) A4 = [0 1 0 1 1 1; 3 5 7 2 1 4;7 7 7 7 1 7];%matriz de 3 filas 6 columnas (3X6) %% generacion de matrices usando for for nfila = 1:10 for ncolumna = 1:10 A5(nfila,ncolumna) = sqrt(nfila+ncolumna) + log(nfila^ncolumna); end; end; %% indexacion %en el proceso de indexacion se aisla un elemento indicando %el numero de fila y el numero de columna hay que tener cuidado que los numeros %siempr esten dentro del tamanho de la matriz x1 = A1(2,3); %extrae el valor ubicado en la fila 2 y columna 3 x2 = A2(3,1); %extrae el valor ubicado en la fila 3 y columna 1 x3 = x2 + x2; %operamnos aritmeticamente x4 = sqrt(A3(1,2)) + log(A4(3,3)+1) - A5(1,4)^A5(10,10); %%submatrices y subvectores %submatrices B1 = A5(1:5,1:5); % este comando extrae de la matriz A5 las primer 5 filas y 5 columnas B2 = A5(3:8,3:8); % este comando extrae de la matriz A5 las desde la fila 3 a la 8 y la comlumna desde la 3 a la 8 B3 = A5(2:4,3:9); % este comando extrae de la matriz A5 las desde la fila 2 a la 4 y la comlumna desde la 3 a la 9 %subvectores V1 = A5(1,:); %crea un vector horizontal de 10 elementos (1X10) con la fila 1 V2 = A5(:,7); %crea un vector vertical de 10 elementos (1X10) con la columna 7 %% operaciones de matrices elemento a elemento tienen que tener el mismo tamanho %usaremos 2 matrices for nf = 1:3 for nc = 1:3 C1(nf,nc) = nf + nc; C2(nf,nc) = nf * nc; end; end; %suma elemento a elemento D1 = C1 + C2; %resta elemento a elemento D2 = C1 - C2; %multiplicacion elemento a elemento D3 = C1.*C2; %division elemento a elemento D4 = C1./C2; %logaritmo natural elemento a elemento D5 = log(C1); %logaritmo base 10 elemento a elemento D6 = log10(C1); %funcion senoidal elemento a elemento D7 = sin(C1); %funcion senoidal elemento a elemento D8 = cos(C1); %funcion tangente elemento a elemento D9 = tan(C1); %funcion raiz cuadrada elemento a elemento D10 = sqrt(C1); %funcion elevado al cuadrado elemento a elemento D11 = C1.^2; %funcion exponencial elemento a elemento D12 = exp(C1); %funcion elevado a cualquier cosa elemento a elemento D13 = C1.^(-2/3); %recordar que estas funciones pueden dar resultados de numeros complejos D14 = C1 + sqrt(-C2); %se puede indexar si la matriz tiene complejos x5 = D14(2,3); %% operaciones exclusivas de matrices (deben tener igual tamanho para la suma y resta) D15 = [2,8,4;5,3,9;8,1,120]; D16 = C1 + C2; %suma de matrices (coincide con la anterior) D17 = C1 - C2; %resta de matrices (coincide con la anterior) D18 = C1*C2; %multiplicacion de matrices (no coincide con lo anterior) D19 = inv(D15); %inversion de matriz solo para matrices cuadradas D20 = D19*D15; %cuando una matriz se premultiplica por su inversa da la matriz identidad D21 = D15*D19; %cuando una matriz se postmultiplica por su inversa da la matriz identidad IDENTIDAD = [1 0 0; 0 1 0; 0 0 1]; %si bien se esperaba que D20 y D21 sean la IDENTIDAD existen pequeños errores %debido que los computadores tienen aritmerica finita, es decir no pueden escribir %todos los decimales %como ejemplo 1/3 es distinto a 0.33333333333 le faltan infinitos 3333333....333.... %% matriz como represntación de una imagen %paso 1 generar una grilla Xg = -3*pi:0.01*pi:3*pi; Yg = -3*pi:0.01*pi:3*pi; [x,y] = meshgrid(Xg,Yg); %funcion 01 fxy1 = cos(y).*cos(y); %imagen 01 figure(1) mesh(x,y,fxy1) title('mi primera superfiecie tridimensional') xlabel('x (m)'); ylabel('y (m)'); zlabel('f_{1}(x,y) (m^2)'); grid on; box on; colormap jet; colorbar; %funcion 02 fxy2 = exp(-(x.^2 + y.^2)); %imagen 02 figure(2) mesh(x,y,fxy2) title('mi segunda superfiecie tridimensional') xlabel('x (m)'); ylabel('y (m)'); zlabel('f_{2}(x,y) (m^2)'); grid on; box on; colormap jet; colorbar; %funcion 03 fxy3 = exp(-cos(x.^2) - cos(y.^2)); %imagen 03 figure(3) mesh(x,y,fxy3) title('mi tercera superficie tridimensional') xlabel('x (m)'); ylabel('y (m)'); zlabel('f_{3}(x,y) (m^2)'); grid on; box on; colormap jet; colorbar;