Fundamentos de Matlab

92
¿Qué es MatLab? MAT rix LABoratory LENGUAJE DE COMPUTACIÓN TÉCNICA FÁCIL USO MÚLTIPLES HERRAMIENTAS PARA APLICAR EN TODAS LAS ÁREAS DEL CONOCIMIENTO PODEROSO SISTEMA DE VISUALIZACIÓN DE DATOS Y DISEÑO DE INTERFAZ GRÁFICA AMPLIA DOCUMENTACIÓN

description

Fundamentos de Matlab

Transcript of Fundamentos de Matlab

¿Qué es MatLab? MATrix LABoratory

LENGUAJE DE COMPUTACIÓN TÉCNICA

FÁCIL USO MÚLTIPLES HERRAMIENTAS PARA APLICAR EN TODAS LAS ÁREAS DEL CONOCIMIENTO • PODEROSO SISTEMA DE VISUALIZACIÓN DE DATOS Y DISEÑO DE INTERFAZ GRÁFICA • AMPLIA DOCUMENTACIÓN

Aplicaciones de MATLAB

Aeroespacial Biomédica Sistemas de control Procesamiento de imágenes Procesamiento de Audio Diseño de filtros Base de datos Finanzas

SISTEMA MATLAB

VENTANA DE COMANDOS (PARA ESCRIBIR COMANDOS EN MATLAB)

ENTORNO-ESCRITORIO DE MATLAB

Barra de menús

Barra de herramientas

Navegador del workspace

Navegador del Directorio actual

Historial de comandos

Botón de inicio

Botón de desacople (undock)

ENTORNO-ESCRITORIO DE MATLAB

Botón de inicio

ENTORNO-EL EDITOR

CREA UN EDITOR EDITOR CREADO

ENTORNO-WORKSPACE

Consiste en un conjunto de variables (llamadas arreglos) construidas durante una sesión de MATLAB y almacenadas en memoria. Las variables son añadidas al workspace a través del uso de funciones, ejecuciones de archivos M y cargando Workspace almacenados

>> A=[9 8 7 6 5 4 3 2 1]; >> B=[6 7];

Todos los datos ingresados al MATLAB son almacenados en forma de matriz o un arreglo multidimensional

COMANDOS DE INICIO

FUNDAMENTOS DE MATLAB

Formato de visualización de números FUNDAMENTOS DE MATLAB

Creación de matrices

En forma general Matlab define a una variable como una matriz o vector :

Los vectores son un caso particular de las matrices, para operaciones numéricas generalmente se usan vectores

Vector fila Vector columna

FUNDAMENTOS DE MATLAB

COMANDOS BÁSICOS

• ver : Muestra la versión del código de licencia y las toolboxes disponibles. •save archivos : Guarda todas las variables. • save a b : Guarda las variables a y b en. • load archivos : Carga variables. • who : Para saber qué variables han sido ya introducidas. • help: Se teclea seguido de un comando, función o archivo y aparecerá una descripción.

FUNDAMENTOS DE MATLAB

OPERACIONES NUMÉRICAS

Rpta: 20

Ejercicio: Utilizar el cociente inverso

FUNDAMENTOS DE MATLAB

DECLARACIÓN DE VARIABLES

FUNDAMENTOS DE MATLAB

FUNDAMENTOS DE MATLAB

Ejercicio:

Calcular el volumen de un cono circular recto trucado

FUNDAMENTOS DE MATLAB

Calcular E: a) X=4 b) X=0,1,2,3,..,10

FUNDAMENTOS DE MATLAB

OPERACIONES MATRICIALES BÁSICAS

rem (m,n) Resto de la división entera de n entre m (rem(m,n)=n-m*fix(n/m)) mod (m,n) Resto de la división entera de n entre m (rem(m,n)=n-m*floor(n/m)) • sign (a) signo de a (1 ó 0 ó -1) • abs(a) Valor absoluto a • gcd(m,n) Máximo común divisor • lcm(m,n) Mínimo común múltiplo • max(a,b) Máximo de los valores entre a y b • min(a,b) Mínimo de los valores entre a y b • nthroot(x,n) raíz n-ésima de x

FUNDAMENTOS DE MATLAB

Ejemplo 4. Encuentre el valor de los catetos de un triángulo rectángulo que tiene una hipotenusa igual a 50 y un ángulo de 65°

>> h=50;teta=65*pi/180; >> a=50*cos(teta) a = 2.113091308703497e+001 >> b=50*sin(teta) b = 4.531538935183249e+001

Ejemplo 5. Encuentre el logaritmo en base 7 de 25

>> x=log(25)/log(7) x = 1.654174950693832e+000

FUNDAMENTOS DE MATLAB

Ejemplo 6. En un triángulo rectángulo se conoce que uno de sus catetos tiene 10 unidades y la hipotenusa de 15 unidades encuentre el ángulo entre ellos

>> alfa=acos(10/15)*180/pi alfa = 4.818968510422140e+001

Ejemplo 7. Calcular el resultado de 100 a la 3

>> pot=realpow(100,3) pot = 1000000

FUNDAMENTOS DE MATLAB

FUNDAMENTOS DE MATLAB

FUNDAMENTOS DE MATLAB

VARIABLES

FUNDAMENTOS DE MATLAB

>> a=150/0 a = Inf >> clear b >> b=0/0 b = NaN >> Inf-Inf ans = NaN >> c=15+sqrt(-1) c = 15.0000 + 1.0000i

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

MATLAB es un programa preparado para trabajar con vectores y matrices, como

caso como caso particular también trabaja con variables escalares (matrices de

dimensión 1). MATLAB trabaja siempre en doble precisión, es decir guardando cada

dato en 8 bytes, con unas 15 cifras escalares exactas

MATLAB mantiene una forma especial para los números muy grandes (más

grandes que los que es capaz de representar), que son considerados como infinito.

>> 1.0/0.0 ans = Inf

>> Inf/Inf ans = NaN

>> 0/0 ans = NaN

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Los sub índices en MATLAB empiezan en uno.

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Dimensiones de una matriz

size(A) : Devuelve el valor [número de filas, número de columnas] de la matriz A. size(A,1) : Devuelve el número de filas de la matriz A. size(A,2) : Devuelve el número de columnas de la matriz A. length(A) : Si A es un vector (fila o columna) devuelve el número de elementos del vector.

Variables matriciales

Para crear una variable (o cambiar su valor) basta colocarla a la izquierda del operador asignación (=). Podemos evaluar una expresión en MATLAB almacenando el resultado en una variable.

variable = expresión

o simplemente para obtener el resultado

expresión

Cuyo valor se asigna a una variable interna llamada ans .

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Operaciones con matrices

Existen 2 tipos de operaciones con matrices. Las operaciones matriciales que se rigen por las reglas conocidas del álgebra lineal: suma (+), resta (-), producto (*), división (/) y potencia (^); y las operaciones con matrices que se rigen elemento a elemento: producto e.e. (.*) , división e.e. (./) y potencia e.e. (.^) . También son válidas, y en las mismas condiciones, a división por la izquierda (\) y la división por la izquierda e.e. (.\).

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Operaciones con matrices

Para aplicar las operaciones e.e. entre matrices se requieren que los operandos tengan el mismo tamaño (aplicados entre escalares producen el mismo resultado que las operaciones habituales).

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Operaciones con matrices

Ejercicios:

>> A‘ ans = 1 4 7 2 5 8 3 6 9

>> B=A‘ B = 1 4 7 2 5 8 3 6 9

>> B*A ans = 66 78 90 78 93 108 90 108 126

>> A=[1 2;3 4] A = 1 2 3 4

>> A*2 ans = 2 4 6 8

>> A-4 ans = -3 -2 -1 0

>> A/10 ans = 0.1000 0.2000 0.3000 0.4000

Recordar que el resultado es una matriz simétrica

FUNDAMENTOS DE MATLAB

OPERACIONES MATRICIALES BÁSICAS

>> A A = 1 2 3 4 >> B B = 3 2 1 4 >> A/B ans = 0.2000 0.4000 0.8000 0.6000

>> A\B ans = -5.0000 0 4.0000 1.0000

>> A./B ans = 0.3333 1.0000 3.0000 1.0000

>> A.\B ans = 3.0000 1.0000 0.3333 1.0000

>> A.*B ans = 3 4 3 16

>> B.*A ans = 3 4 3 16

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Operaciones con matrices

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Formas de construir matrices

[A1 A2 A3 …] ó horzcat(A1,A2,…) Crea una matriz pegando las matrices A1,A2,… , (todas deben tener igual número de filas). [A1;A2;A3 …] ó vertcat(A1,A2,…) Crea una matriz apilando las matrices A1,A2,… , una debajo de otra (todas deben tener igual número de columnas).

Juntando matrices

Usando funciones predefinidas

A’ : Devuelve la matriz transpuesta de A. inv(A) : Devuelve la matriz inversa de A. triu(A) : Devuelve la matriz triangular superior de la matriz A. tril(A) : Devuelve la matriz triangular inferior de la matriz A. diag(V) : Crea una matriz diagonal con el vector V en la diagonal. diag(A) : Extrae la diagonal principal de la matriz A como vector columna. eye(n) : Crea la matriz identidad de orden n. eye(m,n) : Crea la matriz de tamaño mxn con unos en la diagonal principal y ceros en el resto.

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Formas de construir matrices

Usando funciones predefinidas

eye(size(A)) : Crea una matriz del mismo tamaño que A con unos en la diagonal principal y ceros en el resto. ones(n) : Crea una matriz de unos de nxn. ones(m.n) : Crea una matriz de unos de mxn. ones(size(A)) : Crea una matriz de unos del mismo tamaño que A. zeros(n) : Crea una matriz de ceros de nxn. zerosm.n) : Crea una matriz de ceros de mxn. zeros(size(A)) : Crea una matriz de ceros del mismo tamaño que A. linspace(a,b,n) : Crea un vector con n valores equiespaciados entre a y b. logspace(a,b,n) : Crea un vector con n valores equiespaciados logaritmicamente entre 10^a y 10^b. rand(n) : Devuelve una matriz nxn con valores pseudoaleatorios extraidas de una distribución uniforme estándar en el intervalo (0,1). rand(m,n) : Devuelve una matriz mxn con valores pseudoaleatorios extraidas de una distribución uniforme estándar en el intervalo (0,1).

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Formas de construir matrices

Usando funciones predefinidas

Usando el operador :

eye(size(A)) : Crea una matriz del mismo tamaño que A con unos en la diagonal principal y ceros en el resto. a:p:b = [a,a+p,a+2p,…,] mientras que a+kp sea menor que b.

Si a es menor que b, p debe ser positivo y si a>b entonces p<0, sino se crea un vector vacío

randi(imax,n) : Devuelve una matriz nxn con valores enteros pseudoaleatorios extraidos de una distribución uniforme discreta en el intervalo (1:imax). randi(imax,m,n) ó randi(imax,[m,n]) : Devuelve una matriz mxn con valores enteros pseudoaleatorios extraidos de una distribución uniforme discreta en el intervalo (1:imax). randi([imin imax],m,n) ó randi([imin imax],[m,n]) : Devuelve una matriz mxn con valores enteros pseudoaleatorios extraidos de una distribución uniforme discreta en el intervalo (imin:imax). magic(n) : Devuelve una matriz nxn de enteros desde 1 hasta n^2 con igual suma de filas y columnas. El orden de n debe ser un escalar mayor o igual a 3

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

FUNDAMENTOS DE MATLAB

>> id4=eye(4) id4 = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 >> diag([1 2 4]) ans = 1 0 0 0 2 0 0 0 4

>> A=[1 2;3 4]; >> diag(A) ans = 1 4

VECTORES Y MATRICES

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Formas de construir matrices

Usando el operador :

En el caso particular donde p=1, se puede escribir a:b en lugar de a:1:b Entonces se pueden generar vectores y crearlo , V=a:p:b. V(n) : Devuelve el n-ésimo elemento del vector V. V(end) ó V(length(V)) : Devuelve el último elemento del vector V. V(n1:n2) : Devuelve los elementos de V entre el n1-ésimo y el n2-ésimo. V(n1:p:n2) : Devuelve el vector de los elementos de V entre el n1-ésimo y el n2-ésimo, tomados de p en p. V(n2:-p:n1) : Devuelve el vector de los elementos de V entre el n2-ésimo y el n1-ésimo, tomados de p en p. V(1:end) ó V(1:lengh(V)) : Devuelve el propio vector V. V(:) : Devuelve todos los elementos de V como una ccolumna.

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Formas de construir matrices

Usando el operador :

En el caso de matrices hay que seleccionar filas y columnas A(m,n) : Devuelve el elemento amn de la matriz A. A(m,:) : Devuelve la fila m-ésima de la matriz A. A(end,:) ó A(size(A,1),:) : Devuelve la última fila de la matriz A. A(:,n) : Devuelve la columna n-esima de la matriz A. A(:,:) : Devuelve la matriz A. A(m1:m2,:) : Define la submatriz de A formada por las filas entre la m1-ésima y la m2-ésima. A(:,n1:n2) : Define la submatriz de A formada por las columnas entre la m1-ésima y la m2-ésima. A(m1:m2,n1:n2) : Devuelve la submatriz A formada por los elementos de las filas y las columnas indicadas.

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Formas de construir matrices

Indexando matrices a partir de vectores

V(J) ó V([j1 j2 j3 …]) : Devuelve el vector formado por los elementos de V indicados por J. Es decir el vector [V(j1) V(j2) V(j3) … ] A(I,:) ó A([i1 i2 i3 … ],:) : Define una matriz formada por la filas de A indicadas por I. Es decir las filas i1-ésima,i2-ésima,etc. de A en ese orden. A(:,J) ó A(:,[j1 j2 j3 … ]) : el mismo caso anterior para las columnas. A(I,J) : Como en el caso anterior para elementos de esas filas y esas columnas. A(m1:m2,:) : Define la submatriz de A formada por las filas entre la m1-ésima y la m2-ésima. A(:,n1:n2) : Define la submatriz de A formada por las columnas entre la m1-ésima y la m2-ésima. A(m1:m2,n1:n2) : Devuelve la submatriz A formada por los elementos de las filas y las columnas indicadas.

FUNDAMENTOS DE MATLAB

>> a(2:3,1:4)=zeros(2,4) a = 0.1493 0.8143 0.1966 0.3517 0.9172 0 0 0 0 0.2858 0 0 0 0 0.7572 0.2543 0.3500 0.4733 0.5497 0.7537

a = 0.1493 0.8143 0.1966 0.3517 0.9172 0.2575 0.2435 0.2511 0.8308 0.2858 0.8407 0.9293 0.6160 58.0000 0.7572 0.2543 0.3500 0.4733 0.5497 0.7537

VECTORES Y MATRICES

FUNDAMENTOS DE MATLAB

>> a([2,3],[2,4])=ones(2,2) a = 0.1493 0.8143 0.1966 0.3517 0.9172 0 1.0000 0 1.0000 0.2858 0 1.0000 0 1.0000 0.7572 0.2543 0.3500 0.4733 0.5497 0.7537

a = 0.1493 0.8143 0.1966 0.3517 0.9172 0 0 0 0 0.2858 0 0 0 0 0.7572 0.2543 0.3500 0.4733 0.5497 0.7537

VECTORES Y MATRICES

FUNDAMENTOS DE MATLAB

VECTORES Y MATRICES

Formas de construir matrices

Matrices como vectores

Aunque las matrices se introducen por filas, MATLAB las almacena como una columna colocando las columnas de la matriz una debajo de otra. Esto permite acceder a los elementos de una matriz con un solo índice. A(:) : Devuelve un vector columna formado por las columnas de la matriz A una detrás de otra. A(n) : Devuelve en n-ésimo elemento del vector columna A(:). A(K) : Siendo K una matriz, devuelve una matriz del mismo tamaño que la matriz K, formada por los elementos de A indiciados por los elementos correspondientes de K. Es decir el elemento ij será el kij-ésimo elemento de A(:), A(kij). reshape(A,m,n) : Devuelve una matriz del mxn cuyas columnas se forman tomando los elementos sucesivos de A(:). Si A tiene menos o más elementos de mxn se produce un error.

Nota: Las matrices de índices deben contener valores válidos. Si A es mxn, deben ser:

Los valores pueden estar repetidos

FUNDAMENTOS DE MATLAB

>> A=magic(5) A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 >> B=A(end,2:end) B = 18 25 2 9

ACCESO A ELEMENTOS DE UNA MATRIZ

FUNDAMENTOS DE MATLAB

ACCESO A ELEMENTOS DE UNA MATRIZ

FUNDAMENTOS DE MATLAB

OPERACIONES MATRICIALES BÁSICAS

• Traza de A: b=trace(A)

FUNDAMENTOS DE MATLAB

• Rango de A: rank(A) • Polinomio característico de A : poly(A) • Matriz triangular inferior a partir de la matriz A : tril(A) • Matriz triangular superior a partir de la matriz A : triu(A) • Devuelve los indices distintos de cero : find(A) • Intercambia la matriz de izquierda a derecha : fliplr(A) • Intercambia la matriz de arriba abajo : flipud(A) • gira la matriz 90° en sentido antihorario : rot90(A) • gira la matriz nx90 : rot90(A,n) • estas funciones operan elemento a elemento : exp,log,sqrt

FUNDAMENTOS DE MATLAB

Cambiar valores de matrices

V(n)=d : Sustituye el n-ésimo elemento del vector V por el valor d. A(m,n)=d : Sustituye el amn elemento de la matriz A por el valor d. A(n)=d : Sustituye el n-ésimo elemento del vector A(:) por el valor d.

>> a=rand(4,5) a = 0.1493 0.8143 0.1966 0.3517 0.9172 0.2575 0.2435 0.2511 0.8308 0.2858 0.8407 0.9293 0.6160 0.5853 0.7572 0.2543 0.3500 0.4733 0.5497 0.7537 >> a(3,4)=58 a = 0.1493 0.8143 0.1966 0.3517 0.9172 0.2575 0.2435 0.2511 0.8308 0.2858 0.8407 0.9293 0.6160 58.0000 0.7572 0.2543 0.3500 0.4733 0.5497 0.7537

FUNDAMENTOS DE MATLAB

>> A=[1 4 -3;2 1 5;-2 5 3] A = 1 4 -3 2 1 5 -2 5 3 >> A(3,2) ans = 5

>> B=[1 4 7 8 3 1 5 7] B = 1 4 7 8 3 1 5 7 >> B(4) ans = 8

VECTORES Y MATRICES

>> C(1,2)=5 C = 0 5 0 0 0 0

>> D(7)=4 D = 0 4 0 0 0 0 4

FUNDAMENTOS DE MATLAB

Eliminar elementos de matrices

Asignando la matriz vacía “[]” , podemos eliminar el contenido de las variables: V(I)=[] : Elimina los elementos del vector V indiciados por I. Devuelve el V resultante A(I,:)=[] : Elimina las filas de la matriz A indiciadas por I . A(:,J)=[] : Elimina las columnas de la matriz A indiciadas por J . A(K)=[] : Elimina los elementos de A indiciados por K. Devuelve A como un vector fila .

A(I,J)=D : Sustituye los elementos de A indiciados con los vectores I y J, por los elementos correspondientes de la matriz D. Las matrices A(I,J) y D deben ser del mismo tamaño. A(K)=D : Sustituye los elementos de A indiciados con la matriz K por los elementos correspondientes de la matriz D, dicha indexación es por columnas.

Cambiar valores de matrices

FUNDAMENTOS DE MATLAB

>> A=magic(3) A = 8 1 6 3 5 7 4 9 2 >> Asc=reshape(A,1,9) Asc = 8 3 4 1 5 9 6 7 2

La funciones min y max no sólo te da el mayor valor sino también su posición

Reshape ordena a una

matriz por columnas

Más funciones definidas

FUNDAMENTOS DE MATLAB

FUNDAMENTOS DE MATLAB

MATRICES DE N DIMENSIONES

>> A = zeros (2,3); B = ones (2,3);

>> cat (1,A,B) % las concatena una debajo de la otra

ans =

0 0 0

0 0 0

1 1 1

1 1 1

>> cat (2,A,B) % las concatena una al lado de la otra

ans =

0 0 0 1 1 1

0 0 0 1 1 1

>> cat (3,A,B) % las concatena como distintas capas de una hipermatriz

ans(:,:,1) =

0 0 0

0 0 0

ans(:,:,2) =

1 1 1

1 1 1

FUNDAMENTOS DE MATLAB

>> c=imread('labo.jpg'); >> whos c Name Size Bytes Class Attributes c 276x3968x3 35426304 uint8 >> c=imread('labo.jpg'); >> imshow(c) >> gris=((c(:,:,1)+c(:,:,2)+c(:,:,3))/3); >> imshow(gris)

MATRICES DE N DIMENSIONES

FUNDAMENTOS DE MATLAB

OPERACIONES MATRICIALES BÁSICAS

1.-Evaluar la siguiente polinomio :

Para 20 puntos de x en el rango de 0 a 10.

2.-valuar la solución de la ecuación de segundo orden coeficientes:

FUNDAMENTOS DE MATLAB

FUNCIONES PARA OPERAR CON VECTORES

>> x = [1 2 3]; y = [4 5 6];

>> cross (x,y) % producto

vectorial

ans =

-3 6 –3

>> dot (x,y) % producto

escalar

ans =

32

Estos conceptos son my utilizados

para definir magnitudes

física s

FUNDAMENTOS DE MATLAB

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

Formato IEEE 754 para punto flotante

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

Formato IEEE 754 para punto flotante

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

Formato IEEE 754 para punto flotante

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

Formato IEEE 754 para punto flotante

Entonces el valor numérico para un dato de punto flotante de doble precisión es:

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

Tipo de dato Rango de valores Función de conversión

Entero con signo de 8 bits int8

Entero con signo de 16 bits int16

Entero con signo de 32 bits int32

Entero con signo de 64 bits int64

Entero sin signo de 8 bits uint8

Entero sin signo de 16 bits uint16

Entero sin signo de 32 bits uint32

Entero sin signo de 64 bits uint64

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

TIPOS DE DATOS

>> A=100*randi([-10 10],6) A = -700 -300 -300 -600 -500 -800 -1000 -100 -600 -200 700 900 100 1000 -200 200 1000 800 800 -700 0 -500 500 700 400 700 -800 -400 -300 -500 -700 300 200 200 200 200 >> int8(A) ans = -128 -128 -128 -128 -128 -128 -128 -100 -128 -128 127 127 100 127 -128 127 127 127 127 -128 0 -128 127 127 127 127 -128 -128 -128 -128 -128 127 127 127 127 127

>> uint8(A) ans = 0 0 0 0 0 0 0 0 0 0 255 255 100 255 0 200 255 255 255 0 0 0 255 255 255 255 0 0 0 0 0 255 200 200 200 200

FUNDAMENTOS DE MATLAB

TIPOS LÓGICOS

Las variables lógicas pueden tomar los valores true (1) y false (0). La función logical(A) produce una variable lógica con el mismo número de elementos de A sea distinto de cero o igual a cero.

A = 16 23 0 7 14 22 4 6 13 15 3 5 12 19 21 9 11 18 20 2 10 17 24 1 8 >> b=logical(A) b = 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

>> whos b Name Size Bytes Class Attributes b 5x5 25 logical

Recordar que las variables lógicas

son de 1 byte por elemento

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

TIPOS LÓGICOS

CREACIÓN DE UN ARREGLO LÓGICO

>> X=[true true false true false] X = 1 1 0 1 0 >> whos X Name Size Bytes Class Attributes X 1x5 5 logical

>> a=[2.1 NaN 4.5 Inf 4]; >> b=isfinite(a) b = 1 0 1 0 1 >> whos b Name Size Bytes Class Attributes b 1x5 5 logical

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

>> str='Curso de Matlab'; >> whos str Name Size Bytes Class Attributes str 1x15 30 char >> str(8) ans = e

>> nombres=char('Rafael','Ana','Maria') nombres = Rafael Ana Maria >> whos nombres Name Size Bytes Class Attributes nombres 3x6 36 char

CADENA DE CARACTERES TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

>> A='cafe'; >> B='mate'; >> A==B ans = 0 1 0 1

>> strcmp(A,'cafe') ans = 1

CADENA DE CARACTERES

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

CADENA DE CARACTERES

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

ESTRUCTURA Y CELL ARRAYS

>> dato.x=12; >> dato.y=123; >> dato.color='verde'; >> dato dato = x: 12 y: 123 color: 'verde'

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

>> dato.(campo) ans = verde

>> dato.x=12; >> dato.y=123; >> dato.color='verde'; >> dato dato = x: 12 y: 123 color: 'verde'

ESTRUCTURA Y CELL ARRAYS TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

ESTRUCTURA Y CELL ARRAYS

>> c={12,'rojo',magic(4)} c = [12] 'rojo' [4x4 double] >> d1{1}=12; >> d1{2}='rojo'; >> d1{3}=magic(4); >> d1 d1 = [12] 'rojo' [4x4 double]

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

ESTRUCTURA Y CELL ARRAYS

>> ss{1,1}=12; >> ss{1,2}='rojo'; >> ss{1,3}=magic(4); >> ss{2,1}=ones(3); >> ss{2,2}=43; >> ss{2,3}='texto'; >> ss ss = [ 12] 'rojo' [4x4 double] [3x3 double] [ 43] 'texto'

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

Identificación del tipo de dato

TIPOS DE DATOS

FUNDAMENTOS DE MATLAB

Operaciones Relacionales

Operaciones y funciones lógicas

FUNDAMENTOS DE MATLAB

>> A=magic(4) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> j=A>10 j = 1 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0

>> A(j)=-10 A = -10 2 3 -10 5 -10 10 8 9 7 6 -10 4 -10 -10 1

Una de las aplicaciones más importantes de las variables lógicas es separar o extraer elementos de una matriz o un vector que cumplen cierta condición

Operaciones Relacionales

Operaciones y funciones lógicas

FUNDAMENTOS DE MATLAB

En el siguiente ejemplo resalta la localización de los números primos en la matriz cuadrada mágica, usando indexación lógica se establece los no primos en cero.

>> A=magic(4) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> b=isprime(A) b = 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0

>> A(b)=0 A = 0 2 3 13 5 11 0 0 0 7 0 0 0 0 0 0

>> b=~b b = 1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1

Operaciones y funciones lógicas

FUNDAMENTOS DE MATLAB

Operaciones Relacionales

Operaciones lógicos

FUNDAMENTOS DE MATLAB

Funciones lógicas

FUNDAMENTOS DE MATLAB

Funciones lógicas

FUNDAMENTOS DE MATLAB

RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES

FUNDAMENTOS DE MATLAB

RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES

NO olvidarse que para calcular la matriz inversa a la matriz A, ésta debe ser

cuadrada y debe tener determinante

FUNDAMENTOS DE MATLAB

RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES

FUNDAMENTOS DE MATLAB

RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES

El sistema expresado en su forma aumentada tiene la forma:

Luego aplicamos Gauss-Jordan

A diferencia del caso anterior aquí puedo tener una

cantidad de ecuaciones distintas a la cantidad de

variables

FUNDAMENTOS DE MATLAB

RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES

>> A=[2 3 1 1;3 -2 -4 -3; 5 -1 -1 4] A = 2 3 1 1 3 -2 -4 -3 5 -1 -1 4

>> rref(A) ans = 1 0 0 1 0 1 0 -1 0 0 1 2

Ejercicio: Obtener la solución al siguiente sistema

FUNDAMENTOS DE MATLAB

VALORES Y VECTORES PROPIOS DE UNA MATRIZ

Un vector no nulo x es un autovector de A si Ax es múltiplo de x. Es decir x es autovector si:

Para un cierto escalar lambda . En este caso lambda es autovalor de A, y se dice que x es autovector asociado al autovalor lambda

FUNDAMENTOS DE MATLAB

VALORES Y VECTORES PROPIOS

FUNDAMENTOS DE MATLAB

FUNDAMENTOS DE MATLAB VALORES Y VECTORES PROPIOS

Para obtener la solución del polinomio:

OBTENCIÓN DE POLINOMIOS

FUNDAMENTOS DE MATLAB

OBTENCIÓN DE POLINOMIOS

FUNDAMENTOS DE MATLAB

>> x=[1 2 3 4 5]’; >> y=[2 1 4 3 0]' >> p=vander(x)\y p = 0.4167 -5.5000 24.5833 -42.5000 25.0000

>> polyval(p,1) ans = 2.0000 >> polyval(p,2) ans = 1.0000 >> polyval(p,3) ans = 4.0000 >> polyval(p,4) ans = 3.0000 >> polyval(p,5) ans = -7.8160e-014 a1= -42.5000

a0= 25.0000

a2= 24.5833

a3= -5.5000 a4= 0.4167

OBTENCIÓN DE POLINOMIOS

FUNDAMENTOS DE MATLAB

Muchas Gracias por su atención!!!!