matlab - Facultad de Ingeniería - Universidad Autónoma del Estado

Anuncio
Universidad Autónoma del Estado de México
Facultad de Ingeniería
CURSO DE MATLAB
Análisis Númerico
P f
Profesor:
D H
Dr.
Humberto
b
S
Salinas
li
T
Tapia
i
Enero 2013
Contenido
1.
1
2.
3.
4.
5.
6
6.
7.
8
8.
9.
Introducción
Fundamentos
La interfaz de Usuario de MATLAB
Trabajando con variables de MATLAB
Operaciones con matrices
P li
Polinomios
i
Estadística Básica y Análisis de Datos
Graficación y Visualización
Introducción a la Programación en Matlab
CURSO BÁSICO DE MATLAB
En este curso se ofrece una introducción al ambiente de trabajo de
MATLAB y es dirigido a usuarios principiantes e intermedios y se
cubrirán temas como análisis y visualización de datos, principios de
programación.
ió Los
L participantes
ti i
t notarán
t á ell poder
d de
d MATLAB como
herramienta científica y a la vez notarán la facilidad de su uso y
flexibilidad
Este curso ofrece un panorama al ambiente de Cómputo Técnico de
MATLAB.
Introducción
Más de un millón de personas en todo el mundo utilizan MATLAB para la
p
técnica.
computación
Confían en MATLAB para ayudarles a desarrollar:
•
•
•
•
•
Terapias contra el cáncer
Búsqueda de nuevas fuentes de energía
Hacen vehículos de combustible más seguro y más eficientes,
eficientes
Explorar el espacio exterior.
Cualquier área de ingeniería
Mediante la combinación de un motor de gran alcance numérico y el
entorno de programación técnica con la exploración interactiva y
herramientas de visualización, MATLAB se ha convertido en el lenguaje
de computación técnica, mas empleado en ingeniería y ciencias.
Aplicaciones
Diseño de sistemas de Control
Diseñar, probar y poner en práctica sistemas de control. Existen Herramientas en
MathWorks de apoyo para el diseño de control de cada etapa del proceso de
desarrollo.
desarrollo
Procesamiento Digital de Señales
Analizar señales,
señales desarrollar algoritmos y diseño de sistemas de DSP
Sistemas de comunicación
Diseño y simulación de sistemas complejos de comunicaciones. Para los sistemas
de comunicaciones , MATLAB ® y/o Simulink ®, ofrecen productos de diseño
abierto y extensible y el medio ambiente de simulación.
Procesamiento de imágenes y video
Adquiere, procesa y analiza imágenes
g
y vídeo para el desarrollo de algoritmos
g
y diseño
de sistemas
Prueba y Medición
Adquirir, analizar y explorar datos y automatizar pruebas
Aplicaciones
Biología Computacional
Analizar, visualizar, y modelación de datos biológicos y de sistemas
Finanzas Computacionales
Desarrollar e implementar aplicaciones financiero de forma eficiente y robusta
Computo Técnico
Cálculo matemático,, análisis,, visualización y desarrollo de algoritmos
g
Introducción
MATLAB es el nombre abreviado de “MATrix
“MATrix LABoratory
LABoratory”.
”.
MATLAB es un programa para realizar cálculos numéricos
– vectores
t
– matrices
– números escalares
reales como complejos
Cadenas de caracteres y con otras estructuras de información más
complejas
Una de las capacidades más atractivas es la de realizar una amplia
variedad de gráficos
– 2D
– 3D
MATLAB tiene también un lenguaje de programación propio.
MATLAB dispone de un código básico y de varias librerías especializadas,
llamadas toolboxes.
toolboxes.
– Para la utilización de los toolboxes se requiere una aplicación específica.
El Sistema MATLAB
El sistema MATLAB consiste de 5 partes.:
1.
Escritorio de Herramientas y ambiente de trabajo.
1
1.
2.
3.
4.
5.
5
6.
7.
8.
2.
Desktop Tools and Development Environment
Environment..
Desktop
Command Window,
Window,
Command history,
history,
debugger,,
Editor and debugger
Analizador de codigos,
codigos,
Browsers para ver la ayuda,
Workspace
Librería de funciones Matemáticas de MATLAB.
Se cuenta con una colección de una gran cantidad de funciones y algoritmos que
van desde funciones elementales tales como la suma
suma, el seno
seno, coseno y aritmética
compleja, hasta funciones mas sofisticadas como inversa de una matriz, valores
característicos de una matriz, Funciones Bessel y transformada rápida de Fourier
3
3. El Lenguaje
L
j MATLAB
– Este es un lenguaje de alto nivel de matrices/arreglos, con sentencias de control
de flujo,
j , funciones,, estructuras de datos,, input/output
p
p y p
programación
g
orientada a
objetos.
4. Gráficos (Graphics
(Graphics).
).
– MATLAB es un entorno extenso y fácil para mostrar graficas de vectores y
matrices.
– Incluye funciones de alto nivel para desarrollar gráficos de 2 y 3 dimensiones.
– Permite el procesamiento de imágenes
– Animación y presentación de gráficos
5
5. Interfaces API externas de MATLAB
MATLAB.
•
Esta es una librería que permite escribir programas en C y FORTRAN e interactuar
con MATLAB.
Inicio de MATLAB
MATLAB se puede arrancar como cualquier otra aplicación
de Windows, clicando dos veces en el icono
correspondiente
di t en ell escritorio
it i o por medio
di del
d l menú
ú
Inicio). Al arrancar MATLAB se abre una ventana similar a
la mostrada en la Figura
Editor de Array
Array’s
s
Se edita el contenido de un array,
el cual se puede modificar.
Command History
Se muestra los comandos
utilizados en la sesión más
reciente, ademas se pueden
recuperar en sesiones
i
ffuturas
t
Command Window
Es la ventana principal de
MATLAB, se utiliza para
introducir
los
datos
datos,
Funciones,
archivos-m,
y
también para mostrar los
resultados
Para apreciar
p
desde el p
principio
p
la potencia de MATLAB, se
puede comenzar por escribir en
la
Command
Window,
a
continuación del prompt (>>). Al
final hay que pulsar intro.
Es posible recuperar comandos
anteriores de MATLAB y moverse
por dichos comandos con el ratón
p
y con las teclas-flechas
↑ y ↓.
Current Directory Browser
Para buscar, ver, abrir y realizar
cambios de los archivos y
directorios de MATLAB, utilizados
en el directorio actual.
El comando pwd (de print working
directory) permite saber cuál es el
directorio actual.
Para cambiar de directorio actual se
puede utilizar el comando cd (de
change directory) (por ejemplo cd
C:\Matlab\Ejemplos) o relativo (cd
Ejemplos).
j p )
Para subir un nivel en la jerarquía de
directorios se utiliza el comando cd ..,
y cd ../.. para subir dos niveles. Éste
es el mismo sistema que se sigue
para cambiar de directorio en las
ventanas de MS-DOS. MATLAB
permite utilizar la barra normal (/) y la
barra invertida (\), indistintamente.
MAT AB Workspace
MATLAB
W k
El espacio
i
d
de
t b j
trabajo
d
de
MATLAB (Workspace) es el
conjunto de variables y de
funciones de usuario que en un
determinado momento están
definidas en la memoria del
programa o de la función que
se está ejecutando.
Para obtener
P
bt
i f
información
ió sobre
b
el Workspace desde la línea de
comandos se pueden utilizar los
comandos who
ho y whos
hos
EDITOR/DEBUGGER
Aunque los ficheros *.m se
pueden crear con cualquier
editor de ficheros ASCII tal
como
Notepad,
MATLAB
dispone de un editor que
permite tanto crear y modificar
estos
t ficheros,
fi h
como ejecutarlos
j
t l
paso a paso para ver si
contienen errores (proceso de
Debug o depuración).
depuración)
DEBUGGER
El Debugger es un programa que hay que conocer muy bien, pues es muy útil
para detectar y corregir errores. Es también enormemente útil para aprender
métodos numéricos y técnicas de programación.
Botones que corresponden al Debugger
Set/Clear Breakpoint. Coloca o borra un breakpoint en la línea en que está el
cursor..
Clear All Breakpoints. Elimina todos los breakpoints que haya en el fichero.
Step. Avanzar un paso sin entrar en las funciones de usuario llamadas en esa línea..
Step In. Avanzar un paso, y si en ese paso hay una llamada a una función cuyo
fichero *.m está accesible, entra en dicha función.
Step Out. Salir de la función que se está ejecutando en ese momento.
Continue. Continuar la ejecución hasta el siguiente breakpoint
Quit Debugging. Terminar la ejecución del Debugger.
Stack En la parte derecha de la barra de herramientas aparece esta lista desplegable
Stack.
mediante la cual se puede elegir el contexto, es decir el espacio de trabajo o
el ámbito de las variables que se quieren examinar.
EL PROFILER
El profiler es un programa de utilidad que permite saber cómo se ha empleado el
tiempo de la CPU en la ejecución de un determinado programa. El profiler es una
y útil p
para determinar los cuellos de botella de un p
programa,
g
, es
herramienta muy
decir las funciones y las líneas de código que más veces se llaman y que se llevan
la mayor parte del tiempo de ejecución. Por ejemplo, es obvio que si se trata de
mejorar la eficiencia de un programa, sería más importante mejorar una función
que se llevase el 60% del tiempo total que otra que sólo se llevase el 2%. Dentro
de la función más llamada, el profiler proporcina información sobre el tiempo que
se lleva cada sentencia, y da también algunas orientaciones sobre las
posibilidades de mejorarla.
Preferencias: Formatos de salida y de otras opciones de
MATLAB
MATLAB 7.0 dispone
p
de un cuadro de diálogo
g desde el q
que se establecen casi todas las
opciones que el usuario puede determinar por su cuenta. Este cuadro de diálogo se abre
con el comando Preferences del menú File
PATH DE MATLAB
ESTABLECER EL CAMINO DE BÚSQUEDA (SEARCH
PATH)
El search path de MATLAB es una lista de directorios que se puede ver y modificar a partir
de la línea de comandos, o utilizando el cuadro de diálogo Set Path, del menú File. El
comando path que se escriba el search path de MATLAB (el resultado depende de en qué
di t i esté
directorio
té instalado
i t l d MATLAB;
MATLAB se muestran
t
sólo
ól unas pocas líneas
lí
d la
de
l respuesta
t reall
del programa)
Uso del Help
MATLAB 7.0 dispone de un excelente Help con el que se puede encontrar la
información que se desee.
>> help
>> help lang
>> help ‘function’
OPERACIONES CON MATRICES Y VECTORES
• MATLAB es fundamentalmente un programa para cálculo matricial.
matricial
• Inicialmente se utilizará MATLAB como programa interactivo, donde se definirán:
•
•
•
•
matrices
vectores y
expresiones que los combinan y obteniendo los resultados sobre la marcha.
asignación
i
ió de
d variables
i bl
• MATLAB sería como una potente calculadora matricial (en realidad es esto y mucho
más )
más...)
• Como en casi todos los lenguajes de programación, en MATLAB las matrices y
vectores son variables que tienen nombres.
nombres
• Se sugiere que se utilicen letras mayúsculas para matrices y letras
minúsculas para vectores y escalares (MATLAB no exige esto, pero puede
resultar útil).
• Para definir una matriz no hace falta declararlas o establecer de antemano su
tamaño (de hecho, se puede definir un tamaño y cambiarlo posteriormente).
•MATLAB determina el número de filas y de columnas en función del número de
elementos que se proporcionan (o se utilizan).
•Se pueden introducir las matrices en MATLAB de diferentes formas
•
•
•
Como una lista
C
li t explicita
li it d
de elementos
l
t
Abrir matrices desde archivos de datos externos
Generar matrices usando funciones (funciones predeterminadas)
• Crear matrices con funciones creadas en archivos-M
Las matrices se definen o introducen por filas
Los elementos de una misma fila deben separarse por espacios o comas (,)
Las filas se separan con intro o por caracteres punto y coma (;)
Para indicar que es una matriz
matriz, se debe introducir el arreglo entre corchetes
cuadrados ([ ])
Por ejemplo,
j p , el siguiente
g
comando define una matriz A de dimensión ((3×3):
)
>> A=[1 2 3; 4 5 6; 7 8 9]
Ejemplos
A=
16
5
9
4
3
10
6
15
2
11
7
14
13
8
12
1
B=
16
3
2
13
5
10
11
8
9
6
7
12
4
15
14
1
A =[16 ,3,2 ,13; 5,10,11,8; 9,6,7,12;4,15,14,1]
B = [16
3
2
13
5
10
11
8
9
6
7
12
4
15
14
1]
C= [16
5
9
4]
[ ; ; ; ]
D=[16;3;2;13]
C=
16
D=
16
3
2
13
5
9
4
Vectores y Matrices
Matlab considera que todas las variables son matrices (vectores y escalares
son casos particulares).
Ejemplos de inicialización de vectores fila
>> x=[1,2,3,5,7,11,13];
[1 2 3 5 7 11 13]

[ 1 2 3 5 7 11 13 ]
>> x=[1 2 3 5 7 11 13];

[ 1 2 3 5 7 11 13 ]
>> y
y=1:5;
>> pares=2:2:10;
>> imp_regr=9:-2:1;
>> (5) 7
>>a(5)=7;




[12345]
[ 2 4 6 8 10 ]
[97531]
[00007]
Vectores y Matrices
Ejemplos de inicialización de vectores columna
Vectores y Matrices
Acceso a elementos de una matriz
De forma similar a la notación utilizada en
algebra matricial, en MATLAB, los elementos
del renglón i y la columna j de la matriz A es
denotada por A(i,j)
>> A

Modificación de datos en la matriz
>>A(2,2) =4 
A=
16
5
9
4
A=
Matlab utiliza los paréntesis para acceder a
elementos de la matriz
• Los subíndices empiezan en 1
1, por lo tanto el
primer elemento es A(1,1)
>>A(2,2) 
ans =
10
3
4
6
15
2
11
7
14
13
8
12
1
Se pueden extraer renglones
completos
p
y columnas completas
p
>>b=[A(1,1) A(1,2) A(1,3) A(1,4)]
b=
16
3
2
13
Utilización del punto y coma (;) y de los dos puntos(:)
Punto y coma (;)
En las matrices p
permite separar
p
las filas
Al final de cada sentencias (de cada instrucción), se realiza la operación y/o la
asignación pero no se muestra el resultado
>> d=[6;3;2;1] ;
>>
Dos puntos(:)
Este operador es muy importante en MATLAB y puede usarse de varias formas.
Es importante practicar mucho, introduciendo todas las modificaciones que se le
ocurran y haciendo pruebas abundantes (¡Probar es la mejor forma de aprender!).
En cierta forma se podría decir que el operador (:) representa un rango:
Sintaxis
valor inicial : incremento
valor inicial : valor final
: valor final
(por defecto el incremento es 1)
Ejemplos
Ejemplos
>>x=1:2:10
>>x1=1:2:10
>>x2=1:-2:10
>>x=1:1.5:10
>>x1=1:2:10
>>x2=1:-2:10
Acceso a elementos de una matriz
Recuérdese que MATLAB accede a los elementos de una matriz por medio de los
índices de fila y de columna encerrados entre paréntesis y separados por una
coma. Por ejemplo:
>> A(2,3)
ans =
11
El siguiente comando extrae los 3 primeros elementos de la 4ª fila:
>> A(4, 1:3)
Entonces en una matriz cuando se utiliza como índice, extrae un rango.
>> A(1:4, 3)
En una matriz, los dos puntos aislados representan "todos los elementos".
>> A(2
A(2, :))
>> A(:, 4)
Acceso a elementos de una matriz
Se pueden extraer conjuntos disjuntos de filas utilizando corchetes [ ]
>> A(:,[1 3 2 4])
>> A(:
A(:,[1
[1 2 4])
>> A([1 2 4],:)
El operador dos puntos (:) puede utilizarse en ambos lados del operador (=)
Por ejemplo,
P
j
l a continuación
ti
ió se va a definir
d fi i una matriz
t i id
identidad
tid d B d
de ttamaño
ñ 6
6×6
6 y se
van a reemplazar filas de B por filas de A. Obsérvese que la siguiente secuencia de
comandos sustituye las filas 2, 4 y 5 de B por las filas 1, 2 y 3 de A,
>> B=eye(size(A));
>> B([2 4 5],:)=A(1:3,:)
Se pueden realizar operaciones aún más complicadas, tales como la siguiente:
>> B
B=eye(size(A));
eye(size(A));
>> B(1:2,:)=[0 1; 1 0]*B(1:2,:)
Acceso a elementos de una matriz
Como nuevo ejemplo,
ejemplo se va a ver la forma de invertir el orden de los elementos de
un vector:
x rand(1,5)
>> x=rand(1,5)
>> x=x(5:-1:1)
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.
Para invertir el orden de las columnas de una matriz se puede hacer lo siguiente
>>A(:,4:-1:1)
Para invertir el orden de las filas de una matriz se puede hacer lo siguiente
>>A(4:-1:1,:)
>>A(4 1 1 4 1 1)
>>A(4:-1:1,4:-1:1)
A(:) representa un vector columna con las columnas de A una detrás de otra
Expresiones
Como la mayoría de lenguajes de programación, el lenguaje de MATLAB,
proporciona expresiones matemáticas, pero a diferencia de la mayoría de
lenguajes, estas expresiones implican el uso de matrices totalmente.
MATLAB no requiere que se realice la declaración
ó ni la dimensión
ó de
ningún tipo de variables.
Cuando MATLAB encuentra un nombre de variable nueva
nueva, crea
automáticamente la variable y se asigna la cantidad adecuada de
almacenamiento, por ejemplo:
>> num_students = 25
Si la variable ya existe,
existe MATLAB realiza los cambios de su contenido yy, si es
necesario, realiza el almacenamiento. Por ejemplo:
>> num_students = 80
Los nombres de las variables consisten de una letra, seguida de cualquier
número de letras, dígitos o subrayados. MATLAB es sensible a mayúsculas
y distingue entre mayúsculas y minúsculas. A y a no son la misma variable.
>>N23a=12;
>>a2_13_54_ere=3;
USO DE VARIABLES
Aunque los nombres de variables pueden ser de cualquier longitud,
MATLAB utiliza sólo los primeros N caracteres del nombre (donde N es el
número devuelto por la función namelengthmax), e ignora el resto.
>>N = namelengthmax
>>N =
63
Por lo tanto, es importante para que cada nombre de variable MATLAB,
únicamente considera los primeros N caracteres para distinguir
variables.
La función de genvarname puede ser útil en la creación de nombres de
variables válidas y únicas
VARNAME = GENVARNAME (candidato) devuelve un nombre de
variable válido VARNAME, construido a partir de la cadena CANDIDATO.
Candidato puede ser una cadena o un matriz de una celda de cadenas
>> genvarname('ok name'
name','ok
'ok Name')
>> genvarname({'ok name','ok Name'})
USO DE VARIABLES
También se puede checar si el nombre de una variable es permitida (se
permite)usando el comando isvarname. Como es común en los lenguajes
de computación el 1 indica verdadero, y el 0 falso, entonces al emplear el
puede ser 1 ó 0. Por ejemplo:
j p
comando isvarname el resultado p
>> isvarname time
ans =
1
>> isvarname mas
mas--menos
ans =
0
>> N23a=12;
>> isvarname N23a
Indica que time
time,
es una variable
legitima
Indica que mas-menos, es una
variable no legitima
Recordar que el guión no es un
carácter permitido
USO DE VARIABLES
MATLAB reserva una lista de palabras clave para su uso. Estas
palabras se recomienda no asignar como nombre de las variables.
El comando iskeyword genera en MATLAB una lista con los nombres
reservados para el programa.
>> iskeyword
ans =
'break'
'case'
'catch'
'classdef'
'continue'
'else'
'elseif'
end
'end'
'for'
'function’
'global'
'if'
'otherwise'
'parfor'
persistent
'persistent'
'return'
'switch'
try
'try'
'while'
USO DE VARIABLES
MATLAB también permite reasignar los nombres de funciones que tiene
incorporadas, como nombres de variables. Por ejemplo, podría crear una nueva
variable llamada sin con el comando:
>> sin=5
i 5
sin =
5
Esto es claramente una práctica peligrosa, ya que la función
sin ya no está disponible.
Si se intenta utilizar la función sobre-escrita , se presentara
un mensaje de error:
>> sin(2)
??? Index exceeds matrix dimensions.
Se puede comprobar si una variable es una función integrada de MATLAB
MATLAB, utilizando
el comando which
>> >> which sin
sin is a variable.
>> clear sin
>> which sin
built-in (C:\Program Files\MATLAB\R2008a\toolbox\matlab\elfun\@double\sin) % double method
Ejercicio
Cuál de los siguientes nombres están permitidos en MATLAB?.
Hacer sus predicciones, aplicando los comandos isvarname, iskeyword y
which.
1.
1
2.
3.
4
4.
5.
6.
7.
8.
9.
10.
11.
12.
Test
test
if
my book
my-book
my_book
cursomonograficodehidrologia
enlamaestriaencienciasdelag
l
ti
i
i d l
uadelauaem
1stgroup
group_one
zzaAbc
y
z34wAwy?12#
sin
log
>> isvarname
cursomonograficodehidrologiaenlam
aestriaencienciasdelaguadelauaem
ans =
0
>> isvarname
cursomonograficodehidrologiaenlam
aestriaencienciasdelagua
ans =
1
Números
• MATLAB de forma convencional utiliza notación decimal, sin embargo se puede
utilizar notación científica (denotada por e).
• También se pueden utilizar números imaginarios, considerando a i e j como el
sufijo del número.
Ejemplos de números validos
3
9.6397238
1i
-99
1.60210e-20
-3.14159j
0.0001
6.02252e23
3e5i
>> ima=5i
>> ima=5j
Todos
T
d llos números
ú
son almacenados
l
d iinternamente utilizando
ili
d ell fformato
largo especificado por el IEEE, estándar de punto flotante. Números de
punto flotante tienen una precisión finita de aproximadamente 16 dígitos
decimales y un intervalo finito de aproximadamente 10-308 a 10 +308.
Expresiones
Operadores
p
MATLAB puede operar con matrices por medio de operadores y por medio de
funciones.
Los operadores aritméticos de uso común, que se utilizan en MATLAB son los
siguientes:
+
–
*
^
/
'
\
.*
./ y .\
.^
adición o suma
Operaciones
sustracción o resta
básicas (escalares)
multiplicación
y con matrices
potenciación
división-derecha
d
s ó de ec a ((normal)
o a)
traspuesta
división-izquierda
Operaciones
especiales con
producto elemento a elemento
matrices
división elemento a elemento
elevar a una potencia elemento a elemento
Matlab trabaja con matrices, a diferencia de otros lenguajes que sólo trabajan
con escalares
Operaciones básicas con escalares
MATLAB maneja
j las
l operaciones
i
aritméticas
it éti
entre
t dos
d escalares
l
de
d forma
f
más
á
sencilla que otros programas de computo e incluso que la calculadora
>> a=1+2
También se pueden realizar operaciones básicas con valores de dos escalares
asignados a variables y el resultado asignarse a otra variable, por ejemplo:
>> a=1+2;
>> b=5;
>> x=a+b
x=
8
El signo
g = es considerado en MATLAB,, como el operador
p
de asignación.
g
Este
operador es diferente cuando se considera como igualdad.
>>x=x+1
x=
9
>>x==x+1
ans =<
0
>> x==9
ans =
1
Orden de las operaciones
MATLAB emplea
l ell mismo
i
orden
d d
de operaciones
i
utilizado
tili d en algebra
l b
•Primero realiza los cálculos de los paréntesis, iniciando de adentro
hacia afuera
afuera.
•Después realiza las operaciones de los exponentes
•Se continua con las operaciones de multiplicaciones y/o división,
realizándose de izquierda a derecha
•Finalmente se realiza la adición y sustracción , también de izquierda a
derecha.
r
Para entender
P
t d mejor
j la
l iimportancia
t
i d
dell
orden de operaciones. Realice los
cálculos necesarios para obtener el área
superficial del cilindro circular recto
recto,
utilice asignación de variables.
Considere un radio de 5 cm y altura de
10 cm
cm. Obtenga la superficie
desarrollando diferentes combinaciones
del orden de las operaciones.
r2
+
h
2rh
r2
S=2r2+2rh
S=2r(r+h)
Ejercicio
Resolver la siguiente ecuación, considerando x=9, a=1, b=3 y c=5
log( ax  bx  c)  sin( ax  bx  c)
f 
4x 2  cos( x  2) * (ax 2  bx  c)
2
2
Tomar en cuenta que log
log, sin y cos son funciones elementales de MATLAB y se
utilizan de la siguiente manera:
sin (X) es el seno del argumento X.
cos (X) es ell coseno del
d l argumento
t X
log (X) es el logaritmo de base 10 del argumento X
pi
devuelve el valor de pi.
SOLUCIÓN
Se define PRIMERO
LAS VARIABLES el
polinomio y el
denominador
>> x=9;
>> a=1;
>> b=3;
>> c=5;
>> pol=a*x^2+b*
pol=a*x^2+b*x+c
x+c;;
>> denom=4*pi*x^2+cos(x
denom=4*pi*x^2+cos(x--2)*
2)*pol
pol;;
))/denom
denom
>> f=(log(pol
f=(log(pol))-sin(pol
sin(pol))/
f=
0.004373777690856
Operaciones Básicas con arreglos (matrices)
MATLAB es una excelente calculadora, pero su verdadera fuerza está en la
manipulación de matrices.
matrices. Como se ha visto, la declaración de matrices en MATLAB es
sencillo.. Entonces, los operadores se aplican también a las matrices y su manipulación
sencillo
se realiza con variables o valores escalares, aunque con algunas diferencias.
diferencias.
Todos estos operadores son coherentes con las correspondientes operaciones
matriciales..
matriciales
No se puede por ejemplo sumar matrices que no sean del mismo tamaño (dimensión)
(dimensión)..
Si los operadores no se usan de modo correcto se obtiene un mensaje de error.
error.
Los operadores anteriores se pueden aplicar también de modo mixto
mixto,, es decir con un
operando escalar y otro matricial.
matricial.
La operación con el escalar se aplica a cada uno de los elementos de la matriz.
matriz.
Ej
Ejemplo:
Ejemplo
l :
>> 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=[1 2 12 25 ; 1 3 65 32; 32 32 2 5 ]
A=
1 2 12 25
1 3 65 32
32 32 2 5
>> A*2
ans =
2 4 24 50
2 6 130 64
64 64 4 10
>> A-4
ans =
-3 -2 8 21
-3 -1 61 28
28 28 -2 1
>> A^2
??? Error using ==> mpower
Matrix must be square.
>> A.^2
ans =
1
1
1024
4
144
9
4225
1024
4
625
1024
25
>> B=A(1:3,1:3)
B=
1 2 12
1 3 65
32 32 2
>> B^2
ans =
387
2084
128
>> B.^2
B ^2
ans =
1
1
1024
392
2091
224
166
337
2468
4
144
9
4225
1024
4
OPERADORES ELEMENTO A ELEMENTO
En MATLAB existe también la posibilidad de aplicar elemento a elemento los
operadores matriciales (*, ^, \ y /). Para ello basta precederlos por un punto (.). Por
ejemplo:
>> [1 2 3 4]^2
??? Error using
g ==> ^
Matrix must be square.
>> [1 2 3 4].^2
ans =
1 4 9 16
>> [1 2 3 4]*[1 -1 1 -1]
??? Error using ==> *
I
Inner
matrix
t i dimensions
di
i
mustt agree.
>> [1 2 3 4].*[1 -1 1 -1]
ans =
1 -2 3 -4
Tipos de datos
MATLAB trabaja siempre en doble
precisión, es decir guardando cada dato en
8 bytes, con unas 15 cifras decimales
exactas.
exactas
También puede trabajar con cadenas de
caracteres (strings)
Desde la versión 5.0, también con otros tipos
de datos:
Matrices de más dos dimensiones
Matrices dispersas
p
Vectores y matrices de celdas
Estructuras
Clases y objetos.
Maneja correctamente los valores Inf (infinito)
y NaN (not-a-number)
Complejos automáticos
Tipos de datos
Matrices reales
– double realmin2.2251e-308, realmax  1.7977e+308, eps  2.2204e-016
– single
realmin  1.1755e-038, realmax  3.4028e+038, eps  1.1921e-007
• Matrices enteras
– int8, uint8
– int16, uint16
– int32, uint32
– int64, uint64
• Otros
–char
h
– logical–cell
– struct
Quizás las variables más interesantes –aparte de las variables por defecto, las
double– sean las variables logical, que sólo pueden tomar los valores true (1) y
false (0).
(0) Las variables lógicas surgen como resultado de los operadores
relacionales (==, <, <=, >, >=, ~=,) y de muchas funciones lógicas como any y all
que se aplican a vectores y matrices, y que se verán mas adelante
Tipos de datos
La función logical(A) produce una variable lógica, con el mismo número de
elementos que A, con valores 1 ó 0 según el correspondiente elementos de
A sea distinto de cero o igual a cero.
cero
Una de las aplicaciones más importantes de las variables lógicas es para
separar o extraer los elementos de una matriz o vector que cumplen cierta
condición, y operar luego selectivamente sobre dichos elementos.
Obsérvese, el siguiente ejemplo :
>> A=magic(4)
A=
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> j=A>10
>> A(j)=-10
Tipos de datos
CADENAS DE CARACTERES
MATLAB puede definir variables que contengan cadenas de caracteres. En
MATLAB las cadenas de texto van entre apóstrofos o comillas simples
(Nót
(Nótese
que en C van entre
t comillas
ill
d bl
dobles:
" d
"cadena").
") Por
P ejemplo,
j
l en
MATLAB .
>> s = 'cadena de caracteres‘
Las cadenas de texto tienen su más clara utilidad en temas que se verán
más
á adelante
d l t
Tipos de datos
En muchos cálculos matriciales los datos y/
y/o los resultados no son reales sino
complejos, con parte real y parte imaginaria. MATLAB trabaja sin ninguna
dificultad con números complejos. Para ver como se representan por defecto los
p j
ejecútense
j
los siguientes
g
comandos .
números complejos,
>>a=sqrt(-4)
a=
0 + 2.0000i
>> 3 + 4j
ans =
3.0000 + 4.0000i
>> A = [1+2i 2+3i; -1+i 2-3i]
>> A = [1 2; -1 2] + [2 3; 1 -3]*i
necesario
% En este caso el * es
MATLAB dispone asimismo de la función complex, que crea un número
complejo a partir de dos argumentos que representan la parte real e
imaginaria como en el ejemplo siguiente:
imaginaria,
>> complex(1,2)
Eliminación de variables
Para eliminar las variables de la sesion de trabajo se utiliza el comando
clear
El comando clear tiene varias formas posibles:
Clear
sin argumentos, elimina todas las variables creadas previamente
(excepto las variables globales).
clear A, b
borra las variables indicadas.
clear
l
global
l b l
borra las variables globales.
clear functions
borra las funciones.
clear all
borra todas las variables, incluyendo las globales, y las
funciones.)
OTRAS FORMAS DE DEFINIR MATRICES
MATLAB dispone de varias formas de definir matrices.
matrices El introducirlas por teclado
sólo es práctico en casos de pequeño tamaño y cuando no hay que repetir esa
operación muchas veces.
Recuérdese que en MATLAB no hace falta definir el tamaño de una matriz. Las
matrices toman tamaño al ser definidas y este tamaño puede ser modificado por el
usuario mediante adición y/o borrado de filas y columnas
TIPOS DE MATRICES PREDEFINIDOS
eye(4)
zeros(3,5)
zeros(4)
ones(3)
ones(2,4)
linspace(x1,x2,n)
logspace(d1,d2,n)
rand(3)
rand(2,5)
forma la matriz unidad de tamaño (4×4)
forma una matriz de ceros de tamaño (3×5)
ídem de tamaño (4×4)
forma una matriz de unos de tamaño (3×3)
(3 3)
idem de tamaño (2×4)
genera un vector con n valores igualmente espaciados
entre x1 y x2
genera un vector con n valores espaciados
logarítmicamente entre 10^d1 y 10^d2. Si d2 es pi, los
puntos se generan entre 10^d1 y pi
forma una matriz de números aleatorios entre 0 y 1, con
distribución uniforme, de tamaño (3×3)
idem de tamaño (2×5)
TIPOS DE MATRICES PREDEFINIDOS
randn(4)
forma una matriz de números aleatorios de tamaño (4×4), con
di t ib ió normal,l de
distribución
d valor
l medio
di 0 y varianza
i
1
1.
magic(4)
crea una matriz (4×4) con los números 1, 2, ... 4*4, con la
propiedad de que todas las filas y columnas suman lo mismo
hilb(5)
crea una matriz de Hilbert de tamaño (5×5). La matriz de Hilbert
es una matriz cuyos elementos (i
(i,j)
j) responden a la expresión
(1/(i+j-1)). Esta es una matriz especialmente difícil de manejar
por los grandes errores numéricos a los que conduce
invhilb(5)
crea directamente la inversa de la matriz de Hilbert
kron(x,y)
o ( ,y)
p oduce una
produce
u a matriz
at co
con todos los
os p
productos
oductos de los
os e
elementos
e e tos de
del
vector x por los elementos del vector y. Equivalente a x'*y,
donde x e y son vectores fila
compan(pol)
construye una matriz cuyo polinomio característico tiene como
coeficientes los elementos del vector pol (ordenados de mayor
grado a menor)
vander(v)
construye la matriz de Vandermonde a partir del vector v (las
columnas son las potencias de los elementos de dicho vector)
FORMACIÓN DE UNA MATRIZ A PARTIR DE OTRAS
MATLAB ofrece
f
t bié la
también
l posibilidad
ibilid d de
d crear una matriz
t i a partir
ti de
d
matrices previas ya definidas, por varios posibles caminos:
– recibiendo alguna de sus propiedades (como por ejemplo el tamaño),
tamaño)
– por composición de varias submatrices más pequeñas,
– modificándola de alguna forma.
A continuación se describen algunas de las funciones que crean una nueva
matriz a partir de otra o de otras, comenzando por dos funciones auxiliares:)
[m,n]=size(A)
n length(x)
n=length(x)
zeros(size(A))
ones(size(A))
(
( ))
A=diag(x)
x=diag(A)
diag(diag(A))
devuelve el número de filas y de columnas de la matriz A. Si la matriz
es cuadrada basta recoger el primer valorde retorno
calcula el número de elementos de un vector x
forma una matriz de ceros del mismo tamaño que una matriz A
previamente creada
ídem con unos
forma una matriz diagonal A cuyos elementos diagonales son los
elementos de un vector ya existente x
forma un vector x a partir de los elementos de la diagonal de una
matriz ya existente A
crea una matriz diagonal a partir de la diagonal de la matriz A
blkdiag(A,B)
crea una matriz diagonal de submatrices a partir de las matrices
que se le pasan como argumentos
triu(A)
forma una matriz triangular superior a partir de una matriz A (no
tiene por qué ser cuadrada). Con un segundo argumento puede
controlarse
t l
que se mantengan
t
o eliminen
li i
más
á di
diagonales
l por
encima o debajo de la diagonal principal.
t il(A)
tril(A)
íd
ídem
con una matriz
t i ttriangular
i
l iinferior
f i
rot90(A,k)
Gira k*90 grados la matriz rectangular A en sentido antihorario. k
es un entero que puede ser negativo
negativo. Si se omite
omite, se supone k=1
flipud(A)
halla la matriz simétrica de A respecto de un eje horizontal
fliplr(A)
halla la matriz simétrica de A respecto de un eje vertical
reshape(A,m,n) Cambia el tamaño de la matriz A devolviendo una matriz de
tamaño m×n cuyas columnas se obtienen a partir de un vector
formado por las columnas de A puestas una a continuación de
otra. Si la matriz A tiene menos de m×n elementos se produce
p
un error.
DEFINICIÓN DE VECTORES Y MATRICES MEDIANTE FUNCIONES Y
DECLARACIONES
También se pueden definir las matrices y vectores por medio de funciones
de librería (las que se verán en la siguiente sección) y de funciones
programadas
p
g
por el usuario (q
p
(que también se verán más adelante).
)
Operadores relacionales
El lenguaje de programación de MATLAB dispone de los siguientes
operadores relacionales:
<
>
<=
>=
==
~=
menor que
mayor que
menor o igual que
mayor o igual que
igual que
distinto que
q
En MATLAB los operadores relacionales pueden aplicarse a vectores y
matrices, y eso hace que tengan un significado especial.
Operadores relacionales
Al igual que en C, si una comparación se cumple el resultado es 1 (true),
mientras
i t
que sii no se cumple
l es 0 (f
(false).
l )
Recíprocamente, cualquier valor distinto de cero es considerado como true
y ell cero equivale
i l a false.
f l
La diferencia con C está en que cuando los operadores relacionales de
MATLAB se aplican a dos matrices o vectores del mismo tamaño
tamaño, la
comparación se realiza elemento a elemento, y el resultado es otra
matriz de unos y ceros del mismo tamaño
Considérese el siguiente ejemplo como ilustración:
>> A=[1
A [1 2;0 3]; B
B=[4
[4 2;1 5];
>> A==B
>> A~=B
Operadores lógicos
L operadores
Los
d
ló
lógicos
i
d
de MATLAB son llos siguientes:
i i t
& and (función equivalente: and(A,B)). Se evalúan siempre ambos operandos, y el
resultado es true sólo si ambos son true.
true
&& and breve:
si el primer operando es false ya no se evalúa el segundo, pues
el resultado final ya no puede ser más que false.
false
| or (función equivalente: or(A,B)). Se evalúan siempre ambos operandos, y el
resultado es false sólo si ambos son false.
false
|| or breve:
si el primer operando es true ya no se evalúa el segundo, pues el
resultado final no puede ser más que true.
~ negación lógica (función equivalente: not(A)) xor(A,B) realiza un "or exclusivo",
es decir,, devuelve 0 en el caso en que
q ambos sean 1 ó ambos
sean 0.
Los operadores lógicos se combinan con los relacionales para poder comprobar el
cumplimiento de condiciones múltiples.
CONCATENACIÓN
Es el proceso de adhesión a las matrices pequeñas para hacer matrices más
grandes. De hecho, hemos creado una matriz mediante la concatenación de sus
elementos. El par de corchetes, [], es el operador de concatenación.
Por ejemplo, crear una matriz de 4-por-4 mágica.
>> A=magic(4)
A=
16 2
5 11
9 7
4 14
3 13
10 8
6 12
15 1
R li
Realizar
llas siguientes
i i t operaciones
i
con lla matriz
ti A
>> B = [A A+32; A+48 A+16]
El resultado es una matriz de 8x8, obtenida por la unión de 4 submatrices
>> sum(B)
Eliminar renglones y columnas
Se puede eliminar un renglón o una columna con simplemente utilizar un par
de corchetes cuadrados, de la siguiente manera:
>> A=magic(4)
>>X=A;
A=
16 2
5 11
9 7
4 14
3 13
10 8
6 12
15 1
Entonces para eliminar la columna 2 de la matriz X
X, se escribe
escribe.
>>X(:,2)=[];
x=
16 3 13
5 10 8
9 6 12
4 15 1
CARACTERES ESPECIALES
[]
Paréntesis cuadrados se utilizan para formar vectores y matrices
{}
Las llaves se utilizan en instrucciones de asignación de una matriz por celdas
Por ejemplo, A(2,1) = {[1 2 3; 4 5 6]}, or A{2,2} = ('str').
()
Los paréntesis se usan para indicar precedencia en expresiones aritméticas en
la forma habitual. Se usan para encerrar los argumentos de las funciones de la
forma habitual. También se utilizan para encerrar los subíndices de los vectores
y matrices de manera más general que de costumbre
costumbre, por ejemplo: Si X y V son
vectores, entonces X (V) es [X (V(1)), X (V (2)), ..., X (V (n))]. Los componentes
de la V deben ser números enteros para ser utilizado como subíndices
=
Se utiliza en instrucciones de asignación. B = A, B almacena los elementos de
A. == es el operador de igualdad.
'
Se utiliza para obtener la transpuesta de una matriz.
.
Punto decimal, se utiliza para operaciones elemento a elemento con los
siguientes caracteres .* , .^, ./,
/ ó .\.
\
Acceso al campo S (m).f cuando S es una estructura, se tiene acceso a los
contenidos del campo f de esa estructura
.( )
acceso dinámico de S.(
S.(df
df)) cuando S es una estructura, se tiene acceso a los
contenidos del campo dinamico df de esa estructura. Nombres de los campos
dinámicos son definidos durante el tiempo de ejecución
CARACTERES ESPECIALES
..
Directorio raíz,
raíz también se utiliza (cd)
...
Continuación. Tres o más puntos al final de una línea indica que la función
actual sigue
g en la línea siguiente.
g
,
Coma. Se utiliza para separar los subíndices de la matriz y los argumentos de
una función.
;
Punto y coma. Utilizados en el interior de una expresión entre paréntesis para
indicar fin a las filas.
Si se utiliza después de una expresión o una declaración, se suprime la
impresión de estas en pantalla.
:
Crea vectores, arreglos con subíndices y para las iteraciones de un bucle.
El símbolo de porcentaje denota un comentario, es decir, indica un fin lógico de
la línea. Cualquier texto que sigue del símbolo es ignorado.
También en archivos creados en MATLAB, al ejecutarse se muestra las
primeras líneas de comentarios contiguos en un archivo-m en respuesta a un
comando de ayuda.
%{%}
{ } Por ciento-llave. El texto incluido en los símbolos %{y%}
{y } es un bloque
q de
comentario. Se utilizan estos símbolos para insertar comentarios que ocupan
más de una línea en un archivo-m (código).
%
CARACTERES ESPECIALES
!
Signo de exclamación
exclamación. Indica que el resto de la línea de entrada se considera
como un comando del sistema operativo.
@
Identificador
Id
ifi d d
de ffunción
ió ((arroba).
b ) Los
L datos
d
de
d MATLAB precedidos
did d
de este
identificador, indica que se tratan de una función,(handle = @functionname)
ejemplo sqr = @(x) x.^2;
Manipulación de matrices
Funciones de concatenación de Matrices
Las siguientes funciones se combinan con las matrices ya existentes para
formar una nueva matriz.
C
Cat
C
Concatena
arreglos
l a llo llargo d
de una di
dimensión
ió especifica
ifi
Descripción
sintaxis
C = cat(dim,
(
, A,, B))
C = cat(dim, A1, A2, A3, A4, ...)
Ej
Ejemplo:
l d
dar llos siguientes
i i t arreglos
l
A=
1
3
B=
2
4
5
7
6
8
C = cat(dim, A, B) Concatena A y B en la
dimensión dim
C = cat(dim, A1, A2, A3, A4, ...) concatena todos
los arreglos de entrada (A1, A2,
A3 A4,
A3,
A4 etc.)
etc ) en la dimensión
dim.
Aplicar la concatenación para producir las
diferentes dimensiones
>>C=cat(1,A,B)
>>D=cat(2,A,B)
>>E=cat(3,A,B)
Funciones de concatenación de Matrices
horzcat Concatena arreglos
g
horizontalmente
Sintaxis:
C = horzcat(A1, A2, ...)
Ejemplo
>> A = magic(5);
% crea una matriz de 3-by-5
>> A(4:5,:) = []
>> B = magic(3)*100
i (3)*100
% crea una matriz
ti d
de 3
3-by-3
b 3
>> C = horzcat(A, B)
vertcat Concatena arreglos verticalmente
Si t i
Sintaxis:
C = horzcat(A1,
h
t(A1 A2
A2, ...))
Ejemplo
j p
>> C = vertcat(A,B)
Funciones de concatenación de Matrices
repmat
p
crea una matriz reproduciendo
p
los datos de una matriz dada ((copia
p la
matriz, concatenándola de acuerdo a las dimensión)
Sintaxis:
B = repmat(A,m,n)
B = repmat(A,[m n])
B = repmat(A,[m n p...]
Ejemplo
B=
1
0
0
1
>>C = repmat(B,3,4)
Ejemplo
>>N = repmat(NaN,[2 3])
C=
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
N=
NaN NaN NaN
NaN NaN NaN
0
1
0
1
0
1
Funciones de concatenación de Matrices
blkdiag
Construye una matriz diagonal, con los datos de entrada del bloque de
matrices
Sintaxis:
out = blkdiag(a,b,c,d,...)
donde a, b, c, d, ... son las matrices, el resultado del
bloque matrices en diagonal es de la forma
Ejemplo
j p
>> A = magic(2);
>> B = rand(2);
>> C = A+B;
>>D= blkdiag(A,B,C)
D=
1.0000
4.0000
0
0
0
0
3.0000
0
0
2.0000
0
0
0 0.0196 0.3795
0 0.6813 0.8318
0
0
0 1.0196
0
0
0 4.6813
0
0
0
0
0
0
0
0
3.3795
2.8318
Indexación de Matrices
Acceso a los elementos individuales
Para hacer referencia a un elemento en particular de una matriz, es necesario
especificar su número de fila y columna con la siguiente sintaxis, donde A es la
variable de matriz
matriz. Siempre se especifica primero la fila y después la columna:
A(row, column)
Indexación lineal
Se refiere a los elementos de una matriz de MATLAB con un subíndice único, A
(k) MATLAB almacena
(k).
l
llas matrices
ti
y llos arreglos
l no d
de lla fforma en que
aparecen cuando se muestra en la ventana de comandos de MATLAB, sino como
una sola columna de elementos. Esta columna está compuesta por todas las
columnas de la matriz
matriz, cada una se anexa a la última
última.
>>A = [2 6 9; 4 2 8; 3 5 1]
>>A =
2 6 9
4 2 8
3 5 1
ventana de comandos
>> A(:)
>>2 4
>>2,
4, 3,
3 6
6, 2
2, 5
5, 9
9, 8
8, 1
Forma en como se
almacena en memoria
>> A(6)
>> A(3,2)
ans =
ans =
5
5
MATLAB calcula un índice en la columna de almacenamiento basado en las
di
dimensiones
i
que h
ha asignado
i
d a lla matriz.
ti
Por ejemplo, supongamos una matriz de dos dimensiones, es decir A tiene el
tamaño [d1 d2],
d2] donde d1 es el número de filas en la matriz y d2 es el número
de columnas.
Si se proporciona dos subíndices (i,
(i j)
j), que representa los índices de fila de
columnas, el índice de la columna de almacenamiento es:
(j
(j--1)) * d1 + i
Por ejemplo, para obtener A (3,2), MATLAB calcula el índice en la columna de
almacenamiento
l
i t d
de A como (2-1)
(2 1) * 3 + 3
3, igual
i
la6
6. E
Este
t es ell elemento
l
t seis
i en lla
columna accesando da el valor 5.
Funciones de Control de Estilo de indexación
función sub2ind, ind2sub
Si se tiene subíndices en fila y columna, pero desea utilizar la indexación lineal en su
l
lugar,
se puede
d convertir
ti a este
t último
últi
con esta
t función.
f
ió
Por ejemplo:
>> linearindex = sub2ind(size(A), 3, 2)
linearindex =
6
Para obtener la fila y la columna equivalente a un índice lineal
>> [[row col]] = ind2sub(size(A),
(
( ), 6))
row =
3
col =
2
Acceso a múltiples elementos
>> A = magic(4);
magic(4);
A(1,4) + A(2,4) + A(3,4) + A(4,4)
ans =
34
A(1:m, n)
Acceso a elementos no consecutivos
>> B = A;
B(1:3:16) = -10
B=
-10 2 3 -10
5 11 -10 8
9 -10 6 12
-10 14 15 -10
El uso de end
>> B(1:3:end) = -10
>> A = 5:5:50
A=
5 10 15
20
25
>> B = [1 3 6 7 10];
>> A(B)
ans =
5 15 30 35
50
30
35
40
45
50
Uso de la función find
Encuentra los índices y valores de los elementos distintos de cero
Sintaxis:
ind = find(X)
ind = find(X, k)
i d = fi
ind
find(X,
d(X kk, 'fi
'first')
t')
ind = find(X, k, 'last')
[row,col] = find(X, ...)
[row col v] = find(X
[row,col,v]
find(X, ...))
ind = find (X) localiza todos los elementos distintos de cero de X, y devuelve los índices
lineales de los elementos en el vector ind.
ind Si X es un vector fila
fila, entonces
ind es un vector fila, de lo contrario, ind es un vector de columna.
p
) devuelve en la mayoría
y
de los p
primeros
ind = find ((X,, K)) o ind = find ((X,, K,, "primero")
índices k correspondientes a los elementos no nulos de X. k debe ser un
entero positivo, pero puede ser de cualquier tipo de datos numéricos.
[fila, columna] = find (X, ...) Devuelve la fila y la columna de los índices de los elementos
no nulos en la matriz X.
[row, col, v] = find (X, ...) devuelve un vector v columna o fila de las entradas de cero en
X, así como los índices de fila y columna
Ejemplo 1
>> A= magic(4)
>> find(A>10)
ans =
1
6
8
12
13
15
A=
16 2
5 11
9 7
4 14
3 13
10 8
6 12
15 1
Ej
Ejemplo
l 2
>> X = [1 0 4 -3 0 0 0 8 6]
X=
1 0 4 -3 0 0
>> indices = find(X)
indices =
1 3 4 8 9
>> [r,c,v]= find(A>10);
>> r', c', v‘
ans =
1 2 4 4 1
ans =
1 2 2 3 4
ans =
1
1
1
1
1
Ejemplo 3
0
8
6
>> find(X > 2)
ans =
3 8 9
( ),
[r,c,v] = find(X)
r=
1 1 1 1
c=
1 3 4 8
v=
1 4 -3 8
1
9
6
3
4
1
Ejemplo 4
Ejemplo 5
>> find(M > 3, 4)
>> [r,c,v] = find(X>2)
r=
1 1 1
c=
3 8 9
v=
1 1 1
>> M = magic(3)
M=
8 1 6
3 5 7
4 9 2
ans =
Practica con archivo de excel
1
3
5
6
Descargar